home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-27 | 234.5 KB | 4,865 lines |
- Page: 1
-
-
-
-
-
-
-
-
-
- Aeolus Software
- BUILDER REFERENCE GUIDE
-
-
-
-
- COPYRIGHT
- c 1992, 1993, 1994 by Aeolus Software
- All rights reserved.
-
-
-
-
-
-
-
-
-
-
-
- Aeolus Software
- P.O. Box 11915
- St. Paul, MN 55111-0915
- (612) 730-4135
-
- Mark H. Kania, CIS# 76270,2436 Page: 2
- Contents
-
- PREFACE: . . . . . . . . . . . . . . . . . .4
- INTRODUCTION:. . . . . . . . . . . . . . . .5
- INSTALLATION:. . . . . . . . . . . . . . . .6
- GETTING STARTED: . . . . . . . . . . . . . .8
- MAIN MENU. . . . . . . . . . . . . . . . . 15
- CHANGE WINDOW. . . . . . . . . . . . . . . 16
- ADD WINDOW . . . . . . . . . . . . . . . . 19
- ADD WINDOW - DIALOG BOX. . . . . . . . . . 22
- ADD WINDOW - FILE MAINTENANCE. . . . . . . 25
- ADD WINDOW - PICK LIST . . . . . . . . . . 28
- ADD WINDOW - COPY WINDOW . . . . . . . . . 32
- ADD WINDOW - HAND CODE. . . . . . . . . . 34
- ADD WINDOW - TBROWSE . . . . . . . . . . . 36
- ADD WINDOW - REL MAINT . . . . . . . . . . 42
- OPTIONS. . . . . . . . . . . . . . . . . . 46
- FILES. . . . . . . . . . . . . . . . . . . 47
- FILES - EDIT DATABASES USED. . . . . . . . 48
- FILES - MODIFY/CREATE STRUCTURE. . . . . . 50
- FILES - DATA DICTIONARY. . . . . . . . . . 53
- FILES - DATA DICTIONARY - Edit Data Dictionary .55
- FILES - DATA DICTIONARY - Edit Data Dictionary - Additional Items 58
- MODE . . . . . . . . . . . . . . . . . . . 66
- ADDITIONAL ITEMS MENU. . . . . . . . . . . 67
- ADDITIONAL ITEMS MENU - VALID. . . . . . . 68
- ADDITIONAL ITEMS MENU - VALID - Pick List Validate . . . . . .70
- ADDITIONAL ITEMS MENU - VALID - Check Character(s) . . . . . .72
- ADDITIONAL ITEMS MENU - VALID - Field Required 74
- ADDITIONAL ITEMS MENU - VALID - Duplicate Check 75
- ADDITIONAL ITEMS MENU - VALID - In a File Validate . . . . . . 77
- ADDITIONAL ITEMS MENU - VALID - Generic Valid. 79
- ADDITIONAL ITEMS MENU - VALID - Right Justify Field. . . . . . 80
- ADDITIONAL ITEMS MENU - VALID - Comment Only . 81
- ADDITIONAL ITEMS MENU - IMPORT . . . . . . 82
- ADDITIONAL ITEMS MENU - EDIT HELP. . . . . 84
- ADDITIONAL ITEMS MENU - DELETE . . . . . . 85
- CROSSHAIRS . . . . . . . . . . . . . . . . 86
- F1 HELP SYSTEM . . . . . . . . . . . . . . 87
- F3 HELP SYSTEM . . . . . . . . . . . . . . 91
- DEFAULT OPTIONS AND HELP.. . . . . . . . . 92
- CONVERTING FROM BUILDER 1.0 OR 2.0 . . . . 94
- SUGGESTIONS. . . . . . . . . . . . . . . . 95
- APPENDIX A - How to Operate Generic File Maintenance Windows. 98
- APPENDIX B - The Generated Source Code . . 99
- Page: 3
-
- APPENDIX C - Files Created by BUILDER. . .110
- Page: 4
- PREFACE:
-
- This manual is a guide for users of the Aeolus BUILDER and
- the Aeolus Function Library. The BUILDER is an easy to use
- interactive program prototyper and Clipper source code
- generator. The Function Library is a set of Clipper source
- code functions and procedures that automate much of the rote
- work of Clipper programing. It has been my experience that
- a knowledgeable user of these tools can easily cut the work
- involved in a project by at least of 80%.
-
- This product is designed for the experienced Clipper
- programmer. BUILDER creates incomplete source which
- requires completion. It is designed only to generate the
- time-consuming rote programming tasks almost every project
- has in abundance. The user of this product must also be
- competent at using the MS-DOS/PC-DOS operating system.
-
- Clipper programmers of all experience levels can use
- BUILDER, BREPORT and the BUILDER Function Library. Less
- experienced programmers will find many useful examples of
- modular coding technique in the source generated by
- BUILDER. Experienced programmers will like these tools
- because they free you from the time-consuming tasks that
- take a large part of a your time and allow more concentra
- tion on the shorter but more involved areas of a program.
- Page: 5
- INTRODUCTION:
-
- The Aeolus BUILDER, BREPORT and the BUILDER Function
- Library. The BUILDER is an interactive program prototyper
- and Clipper source code generator which allows you to create
- a nearly complete text based windowing application which
- includes a drop down menu system plus Dialog, Pick-list,
- File Maintenance, TBrowse, and Relation Maintenance type
- windows. There is also the ability to place your own source
- code in BUILDER programs using Hand Code sections. The
- windows are placed on the screen in a logical cascading
- fashion but may be sized or moved anywhere on the screen
- easily. All the display and input fields inside the window
- can also be moved or changed. The BUILDER includes the
- ability to create .DBF database structures and set the
- screen colors for your application. When the prototype is
- complete, selecting the Generate Source Code menu option
- will create Clipper source code that uses the Aeolus
- Function Library which provides useful example code.
- BREPORT is an easy to use Clipper source code generator for
- creating Clipper report source code. The Function Library
- is a set of high level Clipper functions which were
- developed over a period of several years by a consultant
- based on the needs of real applications in the real world.
- See the Function Library Reference Guide for detailed
- information on how to use all the tools provided in the
- Function Library.
-
- The Aeolus BUILDER, BREPORT and Function Library used by an
- experienced user should easily cut a project by 75% to 85%
- in some instances. Using the prototyper a programmer, in a
- matter of minutes, can show an end user the general look and
- feel of the application she/he is creating. This ability to
- show a user what a program is like to operate before the
- first line of code is written is valuable in mapping out
- changes before any significant effort is expended, which
- would otherwise make changes difficult. When the design is
- complete 80% to 99% of the source code is generated by
- BUILDER, the programmer simply completes the system. Often
- only tying up loose ends. Since the BUILDER creates most of
- the source code there will be fewer bugs, since the user has
- already "played" with the prototype they will want fewer
- changes. Everybody Wins!!
- Page: 6
- INSTALLATION:
-
- System requirements:
-
- To install the Aeolus BUILDER on your computer you will need
- an IBM compatible computer operating under MS-DOS or PC-DOS
- version 3.3 or higher.
-
- You will also need a Clipper compiler, either Summer '87 or
- Version 5.x.
-
- The BUILDER will require that your PC has 512K of RAM free
- when it is run.
-
- It is only recommended you use BUILDER on computers with a
- hard-disk.
-
- Copy and uncompress the files on the distribution disk into
- an empty subdirectory. (C:\BUILDER for example)
-
- If you are installing BUILDER to be used with Clipper
- version 5.2, type
- BINSTLC52 <directory-name>.
-
- If you are installing BUILDER to be used with Clipper
- versions 5.01 through 5.1, type
- BINSTLC50 <directory-name>.
-
- When installing BUILDER for use with any 5.x version of
- Clipper, include the name of the subdirectory where the BIN,
- OBJ, LIB, INCLUDE, SOURCE, and PLL Clipper subdirectories
- are located. Your command line for installing BUILDER for
- use with Clipper version 5.2 would look something like:
- BINSTL52 \CLIP52\
-
- Note: The trailing backslash IS required!
-
- If you are still using the Summer '87 version of Clipper,
- type
- BINSTLS87 <directory-name>.
-
- For Installing Builder for Use With Clipper Summer '87...
- Be sure to include the name of the subdirectory where the
- file CLIPPER.EXE is located. Put a trailing backslash on
- the subdirectory name also! Your install command would look
- something like:
- BINSTL87 \CLIPS87\
-
- General Note for Summer '87 Users: >>> On the command line
- for your linker or in you .LNK file, be certain that
- BUILDER.LIB is referenced BEFORE EXTEND.LIB. If this is not
- done the linker will report 'Undefined Symbols Exist'. for
-
- Page: 7
-
- example:
-
- Using PLINK86 as an example the following will work-
-
- SET LIB=\CLIPPER\
- PLINK86 FI MYPROG LIB CLIPPER,BUILDER,BLDRASM,EXTEND
-
- It works because BUILDER comes before EXTEND and the
- following will produce errors:
-
- SET LIB=\CLIPPER\
- PLINK86 FI MYPROG LIB CLIPPER,EXTEND,BUILDER,BLDRASM
-
- WARNING TO ALL BUILDER USERS!!!
- _______________
- DO NOT UNDER ANY CIRCUMSTANCES PUT BLDRASM.LIB FUNCTIONS IN
- AN OVERLAY!!! YOUR SYSTEM WILL CRASH!!
- Page: 8
- GETTING STARTED:
-
- General Notes:
- At all times while operating the BUILDER program the bottom
- line on the screen will contain the allowable keystrokes and
- their function. Remember to look at the bottom line of the
- screen whenever you don't know what to do next!
-
- Upon initially executing the BUILDER program you will be
- presented with this screen which sets the startup options
- for the application you will create. All the information
- entered here is also available from the BUILDER main menu,
- so no need to panic about mistakes.
-
-
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░╔════════════════════════════════════════Page 1 of 4═╗░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Enter Information About New Application ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Author ████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Company Name: ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ ██████████████████████████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Network (Y/N) N ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Screen Heading (Y/N) Y ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Application Name: (if Screen Heading is YES) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ ██████████████████████████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Exploding Windows? (Y/N) N ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ Program Filename ████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░╚════════════════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down-Prv/Nxt Field ▓ PgUp/PgDn-Prv/Nxt Page ▓ Enter Changes ▓ ESC-Exit ▓
-
-
- his is the OPTIONS screen. All values entered here will be
- available for changes on the "Options" main menu option.
- There are four screen pages with many options. All the
- options from these screens are listed below.
-
- Author - Enter your name, the name will be used in the in
- stream source code comments only.
-
- Company Name - Enter the company whose name should appear on
- the copyright notice in the source code comments and on the
- screen heading.
-
- Network (Y/N) - If you are creating a multi-user application
- to be run on a local area network enter Y at the "Network
- (Y/N)" field otherwise enter N.
-
- Options screen - page 1.
- Screen Heading (Y/N) - If you want a screen heading that
- displays the company name and the application name enter Y
-
- Page: 9
-
- here. Enter N to turn this off.
-
- Application Name - Enter the application name that will
- appear on the screen heading and in the source code comments
- copyright notice.
-
- Exploding Windows? (Y/N) - Enter Y for all windows that
- appear to start small and grow until their correct size.
- Enter N for window to pop onto the screen.
-
- Program Filename - Enter the filename of the application to
- create. You may enter a filename extension if you like but
- .PRG will not be accepted. The default extension is .PR1.
- You may specify an different drive/path also.
-
- Options screen - page 2
- Incorporate Help System - Enter a Y here if you want your
- application to have an F1 HELP system incorporated. Press N
- otherwise. Note that even though you specify NO you do not
- want a help system, you will still be able to key in help
- screens. See the section entitled "F1 Help System" in this
- manual for more information.
-
- Maximum Help Text Lines - Enter a number in the range 0-999
- for the maximum lines of text allowed to be entered into a
- single help screen. A value of 0 (zero) will allow entry of
- up to 64KB, or an out of memory error occurs!
-
- Printer Port - This field has two uses. One, to set the
- printer port for the application you create and, two, any
- printing BUILDER does will be sent to this port also. You
- will want to remember this if you are having trouble
- printing in BUILDER or your application.
-
- Generate Clipper ver 5.x source? (Y/N) - Enter Y and BUILDER
- will generate source code compatible with Clipper versions
- 5.01 through 5.2. Enter N for Summer '87 source output.
-
- If 5.x source, use mouse routines? (Y/N) - If you will be
- generating Clipper 5.x source for your applications and you
- want your application to be navigated using a mouse, enter
- Y. Enter N and mouse input will not be accepted.
-
- If 5.x source, Dialog Scoping? (L/P) - When you create
- BUILDER Dialog boxes, often you will also need to use memory
- variables. Enter L to create LOCAL and P to create PRIVATE
- Dialolg memory variables. LOCAL variables are preferred,
- but PRIVATEs are easier to work with.
-
- Tab Size for Source Code Indentation? - Enter a number
- between zero and nine here. This will be the number of
- characters indented for each control structure in the
-
- Page: 10
-
- generated source code. A value of zero will be treated as
- three.
-
- Create *.BK? Builder Back Up Files? (Y/N) - When BUILDER is
- started and this option is set to Y, all the BUILDER *.BL?
- files will be copied to *.BK? for back up. Enter N and the
- files will not be backed up.
-
- CONFIRM Setting? (Y=ON/N=OFF) - Enter a Y and the Clipper
- command
- SET CONFIRM ON
- will be placed in your source code. Enter N and the
- command entered will be
- SET CONFIRM OFF
-
- Options screen - page 3
- Date Format? (A,N,B,F,G,I,J,U) - Enter a value from the
- following table to set the date format in your application.
- BUILDER will enter a SET DATE TO ... command according to
- your response.
-
- Field Entry Date Format
- ------------ --------------
- A AMERICAN
- N ANSI
- B BRITISH
- F FRENCH
- G GERMAN
- I ITALIAN
- J JAPAN
- U USA
-
- CENTURY Setting? (Y=ON/N=OFF) - Enter a Y for BUILDER to
- enter a
- SET CENTURY ON
- in your application initialization. Enter N and
- SET CENTURY OFF
- will be entered.
-
- EPOCH Setting (Year)? - The default value will be the
- current year minus 30 years. This should work for almost
- all applications. The Clipper command
- SET EPOCH TO <year>
- will be entered with <year> set to the value entered here.
-
- Error System? [C]clipper or [B]uilder - Enter C for the
- standard Clipper error message followed by a traceback.
- Enter B and the BUILDER error system will be used. The
- BUILDER error system can be set to send output to a file or
- to the screen. The error message box that appears can be
- removed using the mouse, the Clipper box cannot. Note that
- this has no effect on Summer '87 code.
-
- Page: 11
-
- If Using the Builder Errorsys, Output to: [S]creen or [F]ile
- - Enter S and the error system will function similar to the
- Clipper error system, with a message followed by a
- traceback. Enter F and the error message box will be
- followed by another message box that reads the error
- information was placed in the file BLDRERR.DBF. BLDRERR.DBF
- fields will be populated with the error date and time, a
- screen image, and the traceback information.
-
- Your Linker Name? - BUILDER uses this information to create
- a make (.rmk) file. Make files are only created when one
- does not exist - BUILDER will not overwrite a make file.
-
- Options screen - page 4
- Window Style for Non-Menu Windows (==, --, =-, -=, 3+, 3-,
- or blank) - Enter the window style you prefer for your non-
- menu applicatoin windows. Enter == for a double border, --
- for single, =- for double horizontal and single vertical, -=
- for single horizontal and double vertical, 3+ for 3D
- 'outtie', 3- for 3D 'innie'. Enter any other characters and
- the first character will be the horizontal border character,
- the second the vertical.
-
- Window Style for Menu Windows (==, --, =-, -=, 3+, 3-, or
- blank) - Enter the window style for menu windows here. The
- styles available are the same as for non-menu windows. See
- the preceeding paragraph for allowable values.
-
- Menu Style? (B, P, or W) - Enter B for a bar drop down menu
- system where the root menu items are located on a horizontal
- bar with sub-menus that drop down. Enter P for a pop-up
- menu system where all system menus are vertical, and the
- root menu is placed in the center of the screen. Enter W
- for a window drop down menu system where the root menu is a
- horizontal menu contained in a window the width of the
- screen with sub-menus that drop down.
-
- Put Shadows on Menu Windows? (Y/N) - Enter Y for menu
- windows to be displayed with shadows. Enter N for menu
- shadows to not be displayed.
-
- Builder Screens Color - Enter a valid Clipper color string
- here for the color setting of the Builder menus and screens.
-
- After the initial startup options are entered BUILDER will
- place you in a window in which to create the root menu of
- your application. Although you may move around the BUILDER
- menus and do other tasks at this time, BUILDER will force
- you to add a root menu.
-
-
-
-
- Page: 12
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║█Menu███████║t Builder 2.2 Application ║
- ╚══════════════║ Pick List ║══════════════════════════════════════════════════╝
- ░░░░░░░░░░░░░░░║ Dialog ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ File ╔═══════════════════════════════════════════╗░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Copy ║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════║ Edi╔═ ADD/CHG MENU ═══════╡Record: 1 of 0╞════╗░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░╚════║ MENU LABEL: ║░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- To do this enter a menu label. Press the PgDn key to save
- each label, when finished press the ESC key until the
- BUILDER menu (bar menu on the top line of the screen)
- disappears. You will then see the prototype of your newly
- created root menu.
-
- Note to the curious:
- While entering menu labels you may notice that the ADD/CHG
- MENU window top border reads Record 1 of 0, and conclude
- that this is confusing and illogical. In all the BUILDER
- file maintenance routines when the first number is one
- greater that the second that means you are in ADD mode and
- that you are working on a record that currently does not
- exist.
-
- After entering your root menu labels and ESCaping to the
- prototype your screen should look something like following
- [Post Initialization] screen .
- Page: 13
-
-
- ╔══════════════════════════════════════════════════════════════════════════════╗
- ║ Aeolus Software ║
- ║ Test Builder 2.2 Application ║
- ╔══════════════════════════════════════════════════════════════════════════════╗
- ║ █Maintenance█ Process Reports ║
- ╚══════════════════════════════════════════════════════════════════════════════╝
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Arrows-Move Pointer ▓ ENTER-Next or Add Window ▓ F1-Builder Menu ▓ ESC-Exit ▓
-
-
- When you exit to DOS and re-enter the BUILDER you will be
- presented with the root menu of your application prototype
- thus bypassing the startup options you have already entered.
-
- Notice three things at this point. One, you are now
- operating a prototype of the application being created and
- the menus function very similar to the actual application.
- Two, you can get back to the BUILDER menu by pressing the F1
- key (see the bottom line of the screen). Three, if you want
- to add a submenu or sub-window press ENTER on a menu option
- where you want a window added, the BUILDER Add Window menu
- is automatically presented, if you are in Prototype mode a
- message box will be displayed indicating the desired menu
- option is not installed.
-
- Let's say that you now want to add a submenu or sub-window
- to the 'Maintenance' menu option on the example application.
- Pressing ENTER with the menu bar positioned on the
- 'Maintenance' label will bring up the BUILDER Add submenu,
- as in the following screen.
-
- Pressing ENTER on any of your menu options or windows will
- bring up the next window of your logic chain. If you are at
- the at the end of the logic chain, the BUILDER "Add Window"
- menu is presented. This is how you build your application
- prototype, by simply pressing ENTER on one of your menu
- options or a prototype window with nothing following and
- adding new windows to the chain.
-
-
- Page: 14
-
- That is the basics of prototype operation. Each BUILDER
- option will now be explored in detail.
- Page: 15
- MAIN MENU
-
- To make changes to your application prototype, access the
- BUILDER main menu by pressing the F1 key. A menu bar will
- be placed on the top of the screen overlapping the prototype
- screen. See the following screen sample.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ║ Aeolus Software ║
- ║ Test Builder 2.2 Application ║
- ╔══════════════════════════════════════════════════════════════════════════════╗
- ║ █Maintenance█ Process Reports ║
- ╚══════════════════════════════════════════════════════════════════════════════╝
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right ▓ ENTER-Select ▓ ESC-Exit to Prototype ▓
-
-
- Move the cursor using the left and right arrow keys and
- press ENTER to select an option or press ESC from the
- BUILDER main menu to return to your prototype.
-
- Select from these options:
-
- Change Window - move/size windows, move/change text in
- windows
- Add Window - put a new Menu/Dialog/Picklist/File
- Maintenance window, or Hand Code on the BUILDER prototype
- Files - modify the database list for program,
- modify database structures, data dictionary, or generate
- source code
- Options - modify screen heading/network/program name
- options
- Colors - modify the screen colors for the program
- you are creating
- Mode - select between "Development" and "Prototype"
- BUILDER operating modes
- About - A display only window showing the program
- name, version number, author and company name.
- Exit - Exit to DOS
- Page: 16
-
- CHANGE WINDOW
-
- Selecting the Change Window main menu option will bring down
- a submenu of four choices. As in the following screen
- sample.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║█Move Window███║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process Reports ║
- ║ Edit Elements ║══════════════════════════════════════════════════════════════╝
- ╚═══════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right ▓ ENTER-Select ▓ ESC-Exit ▓
-
-
- Changes will be made to the topmost or current window
- selected in the application prototype.
-
- Move Window:
-
- Selecting the "Move Window" menu option will cause the
- BUILDER menus to disappear and display only the prototype.
- The arrow keys will be enabled and pressing any of the four
- arrow directions will move selected window in that
- direction. When the window is positioned where you want it
- press ESC or ENTER and the Change Window submenu will
- reappear.
-
- You may also use Home and End to move the window to the
- leftmost and rightmost screen positions. TAB and Shift+TAB
- will move the window right or left 4 character positions at
- a time.
-
- Size Window:
-
- The Size Window option will cause the BUILDER menus to
- disappear also, however, now the arrow keys will change the
- size of the selected prototype window. Again press ESC or
- ENTER to return to the Change Window submenu.
-
- You may also use TAB and Shift+TAB to size the right border
- Page: 17
-
- 4 character positions at a time. Pressing Ctrl+right arrow
- will move the right border to its rightmost screen position,
- Ctrl+PgDn will move the bottom border to the bottommost
- position on the screen.
-
- Move Elements:
-
- The "Move Elements" option will cause the BUILDER menus to
- disappear and highlight a window element. On menus this
- will be a menu label, on dialog windows or file maintenance
- windows it will begin with a display element, TBrowse,
- Picklist and Hand Code windows have no movable elements and
- will display an error message. Press the arrow keys to move
- the element to the desired location within the window, the
- BUILDER will prohibit you from moving it outside the window
- boundaries. Press the PgUp and PgDn key to highlight the
- previous and next window element. If you are moving a
- display element of a dialog or file maintenance window,
- pressing the TAB key will highlight the 'GET' element
- associated with that display element and allow you to move
- it, pressing TAB again selects the display element again.
- The Home/End keys will move the currently selected element
- to the leftmost/rightmost screen positions. Pressing the
- Ctrl+PgDn key combination will move all window elements at
- the current location and below to be moved down one line,
- Ctrl+PgUp will move the elements at or below the current
- location up one line. Moving a GET field so that it 'hangs
- off' the right window border will create scrolling fields in
- the generated source, a PICTURE "@Snn ... will be created
- for these fields.
-
- A message will be displayed on the bottom edge of the window
- indicating the row and column position of display element
- and the row, column, and size of GET element. The row and
- column coordinates will be relative to the top and left
- window borders, therefore the display reads WROW-nnn WCOL-
- nnn.
-
- Edit Elements:
-
- The Edit Elements option allows you to add, change, or
- delete window elements. When selected an edit window
- exactly like the one used to Add the window will be
- presented which will allow you to change or delete any
- existing window element or add new elements. Deleting all
- the elements in a window will delete the window.
-
- If you delete a window that has sub-window(s) attached to
- it, you will create a 'hole' in your application chain. You
- can add another window to fill this hole. If you want to
- delete an entire string of windows, either start from the
- bottom window and work up, or delete in the source code
-
- Page: 18
-
- after it has been generated.
-
- Note that if you delete an entire menu window, you may have
- many 'branches' following the 'hole' in your application
- prototype. These 'orphaned' windows will still be created
- when the source code is generated.
- Page: 19
- ADD WINDOW
-
- There are two ways to add new windows, a window can either
- be appended (normal) or inserted. BUILDER will ask you if
- you want to insert when an insert condition occurs.
-
- If you accessed the BUILDER main menu by pressing the F1 key
- and then selected the Add Window option on a window other
- than the root menu you will be presented with a prompt
- asking if you want to insert a window. If you answer Yes to
- the prompt the Add Window submenu will be presented. Adding
- a window will insert it between the last selected window and
- the window previous to it (Behind the current window).
-
- This message is displayed when the "Add Window" menu
- selection is made manually from the BUILDER main menu.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════════════════╗olus Software ║
- ║ ║ ║der 2.2 Application ║
- ╔════════║ Cannot Append Window ║════════════════════════════════════════════╗
- ║ ║ Insert Window? (Y/N) ║ Process Reports ║
- ╚════════║ ║════════════════════════════════════════════╝
- ░░░░░░░░░╚════════════════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right ▓ ENTER-Select ▓ ESC-Exit to Prototype ▓
-
-
- Page: 20
- ADD WINDOW - MENU
- Select the "Menu" options from the "Add Window" sub-menu to
- add a new menu to your application prototype. As in this
- screen.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║█Menu███████║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrow╔═══════════════════════════════════════════╗════════════╝
- ░░░░░░░░░░░░░░░║ File ║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rel M║ Edit Help: N ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Hand ╚═══════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Copy Wndw ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Procedure Comment ▓ ESC-Exit ▓
-
-
- Comment - Enter a comment in this field. The comment should
- be descriptive of the menus function. Although optional,
- window comments will prove extremely useful after you
- generate the source.
-
- Edit Help - This field should be left alone when adding a
- menu, this is used during "Change Window" and will allow the
- creation of a help screen for the menu.
-
- When the following screen is presented, enter each menu
- label. Press the PgDn key after each menu label is entered
- to save. Press PgUp/PgDn to view the previous/next menu
- labels for the current menu. Press ESC when finished and
- the new menu will be created and displayed.
- Page: 21
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║█Menu███████║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrow╔═══════════════════════════════════════════╗════════════╝
- ░░░░░░░░░░░░░░░║ File ║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rel M║ Edi╔═ ADD/CHG MENU ═══════╡Record: 1 of 0╞════╗░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Hand ╚════║ MENU LABEL: ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Copy Wndw ║ ████████████████████████████████████████ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═══════════║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- You can add a horizontal bar across the window border of a
- menu if the menu pads are aligned vertically. To add these
- menu separators change the window size and move the menu
- elements so that there is a blank line between two menu
- options. Builder will detect this and automatically add a
- separator bar to your menu when the menu is redisplayed.
- Page: 22
- ADD WINDOW - DIALOG BOX
-
- Selecting a dialog box as the next window to add will
- present the dialog initialization window. The following
- screen sample shows this.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║█Dialog█████║ Process Reports ║
- ╚══════════════║ TB╔══════════════════════════════════════════════╗════════════╝
- ░░░░░░░░░░░░░░░║ Fi║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Re║ Message Line: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Ha║ Edit Help: N ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Co╚══════════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Procedure Comment ▓ ESC-Exit ▓
-
-
- Comment - Be sure to enter a window comment on all BUILDER
- windows, these will make it easier for when you need to edit
- the source code.
-
- Message Line - Enter the text you want your users to see on
- the bottom screen line when this window is on the screen in
- this field. BUILDER will prefix your entry with "_", and
- suffix it with "_ ESC-Exit _" when the source code is
- generated.
-
- Edit Help - Every BUILDERed application has a HELP file,
- entering Y in the "Edit Help" field allows editing of this
- data. Note, however, you cannot "Edit Help" from the "Add
- Window" BUILDER main menu option.
-
- After the initialization window is filled out, the element
- entry window is presented. Page: 23
-
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║█Dialog█████║ Process Reports ║
- ╚══════════════║ TB╔══════════════════════════════════════════════╗════════════╝
- ░░░░░░░░░░░░░░░║ Fi║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Re║ Mes╔═ DIALOG ═════════════╡Record: 1 of 0╞════╗░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Ha║ ║ Display Text: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Co╚════║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════════║ Enhanced Color?: N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ GET var: ██████████ Length: ██0 ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Picture: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize?: N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize to: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╚═╡F10-Addtional Items╞════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- None of the entries in this window are required, however,
- one of either "Display Text" or "GET var" must be entered.
-
- Display Text - This field is optional, however, if left
- blank will caus the "GET var" field to be required. Enter
- text to be displayed in the dialog box here.
-
- Enhanced Color? (Y/N) - If Y will display the "Display Text"
- field in the "Window Message" color instead of "Window
- Normal" - see the section on "Colors" for more information
- about these color settings.
-
- GET var - Enter a variable name for GET type keyboard
- entry. This field is requried unless the "Display Text"
- field is non-blank. Note that the only reliable way to GET
- database field variables is to use the "Import" option from
- the "Additional Items" menu! Simply entering a field
- variable will not work. If you enter a value in this field
- by hand, a memory variable will be created.
-
- Length - Enter the byte length of the GET variable, if
- entered, in the "Length" field.
-
- Picture - If you want a PICTURE clause added to your GET,
- enter a valid Clipper PICTURE (either with or without
- quotes) in the "Picture" field.
-
- Enter "@MEMO" here if the "GET var" is a memo data type (no
- quotes all caps).
-
- Enter '@MENU:{"prompt1","prompt2",...,"promptn"}' to create
- a 'Menu' GET (leaving out the two single quotes). All menu
- Page: 24
-
- GETs will be positioned across the screen (horizontal), the
- length will be computed and the field presented on the
- BUILDER screen with the correct size. The "GET var" for a
- 'Menu' GET must be a character or numeric data type ONLY.
- The menu code will read the data type and return the menu
- selection based on the data type.
-
- Enter '@DROPDOWN:{"Entry1","Entry2",...,"Entryn"}' here to
- create a dropdown list box GET (leaving out the two single
- quotes). The length of the display will be determined as
- the length of the longest array element. The GET variable
- MUST be a numeric data type! The value placed in the "Get
- var:" will be the array element number selected. When the
- drop down listbox has GET focus the up/down arrow keys will
- not move to the previous/next get but instead will move
- through the array selections. Use the TAB/Shift+TAB to move
- between fields. Also the Alt+DownArrow key or clicking on
- the arrow button will display the drop down listbox.
-
- WARNING: Summer '87 Users WILL NOT be able to use the
- Builder @MENU!!
-
- Initialize? - If you want the GET variable initialized
- before the READ is executed enter a Y here.
-
- Initialize to - Enter the value with which to initialize the
- GET var. In this field you may enter a literal value or a
- function, like "MIKE JENSEN" or SPACE(25) for example.
-
- See the section entitled 'Dialog Box/File Maintenance
- Additional Items' for information about entering Valids,
- Editing Help Text, Importing screen items from a database,
- and Deleting an entire window.
- Page: 25
- ADD WINDOW - FILE MAINTENANCE
-
- Selecting Add File Maintenance window will first present the
- file-maintenance initialization window which asks what
- database file is to be maintained and other pertinent
- information. It is usually best to create your databases
- before creating File Maintenance windows. (see the section
- under Files/Creating-Modifying Databases).
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ ╔══════════════════════════════════════════════╗══════════════╝
- ░░░░░░░░░░░░░░░║█║ Select File: █████████ Index Order: █0 ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ Menu Options: ACDF ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═╚══════════════════════════════════════════════╝░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Alias to Select for File Maintenance and the Proc Comment ▓ ESC-Exit ▓
-
-
- Select File - Enter a database alias here. Press enter with
- this field empty to be presented a picklist of .DBF files in
- the current DOS directory.
-
- Index Order - If the "Select File" can be located in the
- files list for your application, the message "F10 - Index
- List" will be displayed on the bottom window border. Enter
- the index order number to be used when the file maintenance
- is executed. Press F10 to select an index order from a
- picklist if the message is displayed.
-
- Menu Options - Enter "ACDF" to include all file maintenance
- menu options. These stand for "A" - Add, "C" - Change, "D"
- - Delete, "F" - Find. Remove any to customize user access
- to the data. Leaving this field blank will place only the
- "Find" menu option on the file maintenance. Note that these
- selections are made in the generated source code only and
- will not be visible on the BUILDER prototype screens.
-
-
- Comment - Always be sure to enter the window Comment as this
- will make your source code much more readable!
-
- Entering elements for a file maintenance window:
-
- Page: 26
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ ╔═════════════════════════════════════════════╗═══════════════╝
- ░░░░░░░░░░░░░░░║█║ Select File: TEST████ Index Order: 1 ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ╔═ FILE MAINT ══════════╡Record: 1 of 0╞════╗░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ║ Display Text: ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ║ █████████████████████████████████████████ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═╚═║ Picture: ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ █████████████████████████████████████████ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Key Field: N (Y/N) ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Field Name: ████████ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Field Type: █ (C,N,D,M) ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Field Length: ██0 (1-255) ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Field Decimal: ██0 ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Format Code: █ [M]emo [P]hn [S]sn [Z]ip║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░╚═╡F10-Additional Items╞════════════════════╝░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- The bottom border of the window has a message that reads
- "F10-Additional Items". If you press F10 and select "Import"
- from the menu displayed, you will be able to add Display/GET
- data to your window directly from either a .DBF database
- file (one reason why it is better to create your databases
- first) or the Builder data dictionary. See the "Additional
- Items" chapter in this manual for detailed information on
- the "Additional Items" menu.
-
- Display Text - Enter any display text associated with the
- field in the Display Text field; you can use any text upper
- or lower case. You may leave the display text blank if you
- like, but either "Display Text" or a GET field must be
- entered.
-
- Picture - If the field requires a PICTURE enter a valid
- Clipper PICTURE here.
- If the "Field Type" is Memo, either enter "@MEMO" here (no
- quotes) OR enter and "M" in the "Format Code" field.
- To create a 'Menu' type GET, Enter
- @MENU:{"prompt1","prompt2",...,"promptn"}' (without
- surrounding single quotes). The "Field Type" must be either
- character or numeric to use the "@MENU".
-
- You may also create a drop down listbox GET by entering
- '@DROPDOWN:{"Entry1","Entry2",...,"Entryn"}' (without the
- single quotes). The "Field Type" MUST be numeric to use
- this option! The value placed into the field will be the
- array element number of the item selected. When the GET
- focus is on a Builder drop down listbox, the up/down arrows
- will not move the GET focus, use TAB and Shift+TAB instead.
- Also the Alt+DownArrow key or clicking on the down button
- will show drop down the list.
-
-
- Page: 27
-
- Note: @MENU and @DROPDOWN are NOT available to Summer '87
- Users!!
-
- Key Field - All fields identified with the "Key Field" entry
- equal to "Y" will be positioned as the first fields in the
- File Maintenance window and no duplicates (assuming the
- fields match by the index) will be allowed. If there are no
- "Key Field" entries equal to "Y", the "File Maintenance"
- window source code will be generated to allow duplicates.
-
- The Field Name, Type, Length and Decimal are used to
- determine the name of the GET field variable, the validity
- of any Format Codes used, and the size the window is
- required to be. (That is why it is best to get these fields
- directly from a database - see F10 key explanation above)
- These entries should exactly match those on the database
- structure.
-
- Format Code - You can automatically format a field on your
- File Maintenance window using one of the four Format Codes.
-
- Format Code > > must have > > > Field Type Field
- Size Creates
-
- M - Memo M 10 a Y/N field
- which if Y pops
- up a memo edit
- window.
-
- P - Phone C 10 Formats the field
- to accept a
- phone number
- delimited like:
- (999) 999-9999
-
- S - Social Security Number C 9 Formats the field
- to accept a social
- security number
- delimited like:
- 999-99-9999
-
- Z - Zip Code C 9 Formats the field
- to accept a ZIP
- code delimited
- like:
- 99999-9999
-
- See Appendix A-How to operate a generic file maintenance
- window for information on how the generated file maintenance
- routines function from a user perspective.
- Page: 28
- ADD WINDOW - PICK LIST
-
- Selecting "Pick List" from the "Add Window" sub menu wll
- present the picklist entry window. As in the following
- screen sample.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║█Pick List██║══════════════════════════════════════════════════╗
- ║ █Maint║ Di╔ PICK LIST ════════════════════════════════════╗s ║
- ╚══════════════║ TB║ Select Alias: ██████████ Index Order: █0 ║═══════════╝
- ░░░░░░░░░░░░░░░║ Fi║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Re║ Edit Help: N ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Ha║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Co║ Window Height: █0 Width: █0 ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═══║ Display Expression (evaluated as a macro) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ █████████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ QWERTY Scroll? N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ QWERTY Key Size: █0 ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ Bounded By: ██████████ (fieldname) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░╚═══════════════════════════════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Pick List Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- This window type has only one windowful of information to
- enter but each entry is critical to the outcome of the "Pick
- List" window so be very careful with each field.
-
- The first two fields require the database alias name and the
- index order to use for the picklist, the alias name is
- required. The index order can be in the range 0 to 15.
- These fields are NOT checked against entries made under the
- "Edit Databases USEd" menu option.
-
- Select Alias: - This field is required but entry is not
- checked. If you try to bypass this field a list of .DBFs in
- the current directory will be presented for selection.
- Enter the alias name of the database in which to verify the
- GET entry.
-
- Index Order: - This field is also required. Enter the index
- order number to use when the "Pick List" is displayed.
- Assistance with entry is available if there are index
- entries for the alias entered in the previous field. The
- text "F10-Index List" will be displayed on the bottom of the
- window when a list is available.
-
- Comment - Always enter the BUILDER window comment, even
- though a blank is accepted. You will, sooner or later, find
- it is easier if this is entered.
-
-
- Page: 29
-
- Edit Help - The "Edit Help" field during and "Add Window"
- should be left alone. If a Y is keyed it will display an
- error message. It is left on the screen for consistency
- with the "Change Window"/"Edit Elements" menu option.
-
- Window Height / Width - This is the only window where you
- have to enter the window dimensions, this is necessary
- because, unlike other window types, there is no reliable
- method to compute the size. That means you will have to
- figure out the size you like and enter the number of rows
- the window will occupy and the number of columns in the
- first two fields; "Window Height" and "Width".
-
- Display Expression - Entry here can get complex and the
- BUILDER entry field will scroll side to side to a maximum of
- 150 characters. Enter anything that can be evaluated as a
- macro and returns a character type string. You can bring in
- fields of related databases also. Some examples:
-
- (1) assume: primary database INVOICE related to CNAM
-
- DTOC( FDate ) + " " + Cust_Nbr + " " + CNam->Cust_Name
-
- This example does a number of things you will want to know
- about Pick List function operation. The first field is the
- date field FDATE converted to a string in the INVOICE
- database, followed by CUST_NBR of the same database. The
- last field is a field in another database, presumably
- related to, INVOICE by the CUST_NBR field and displays the
- field CUST_NAME from the database CNAM This way everything
- is converted to character for display. All three of these
- fields are separated by a single space to make the display
- more readable. BUILDER generated source code does not set
- the database relations, this is left to the programmer. The
- philosophy being that database relations should only be set
- when absolutely necessary for performance reasons.
-
- (2) assume: primary database EMPLYEES key EMPL_NBR
-
- Empl_Nbr + " " + TRIM( FName ) + " " + LName
-
- This is a simpler and more common example. Three fields
- from a single database are displayed each separated by a
- single space character. The first and last fields are
- displayed as is from the database. The FNAME field is
- TRIM()ed, however, thus shortening the length of the
- displayed text, not to worry, as the Pick List function will
- widen/shorten any display to fit into the Width you
- specified for the window.
-
- QWERTY Scroll? (Y/N) - is asking if you want to allow
- scrolling through the Pick List using the alphanumeric
-
- Page: 30
-
- (QWERTY) keyboard as well as the cursor controls. If you
- enter "Y" your Pick List will have a field on the top border
- delimited by square brackets ([]) into which the user will
- be able to enter any text they like, anything entered from
- the QWERTY portion of the keyboard will cause the pick list
- to be repositioned using the QWERTY data between the
- brackets as the key expression. For example if you have a
- pick list window displayed and the key field is a last name
- and you enter a "J" character the first record in your
- database with a last name beginning with the letter "J" will
- be displayed followed by other names in alphabetical order.
- Next you type the letter "O", this will display the names
- starting with "JO" as their last name and so on until you
- find what you're looking for. This option is very useful
- when scrolling through large databases. The backspace key
- will remove the last character entered into the QWERTY area
- and reposition the database accordingly. If the index order
- is passed as 0 (zero), the QWERTY option will be automati
- cally turned off.
-
- WARNING: Using the QWERTY scroll options Absolutely
- Requires the index expression to return a character value!!
-
- QWERTY Key Size - is an optional field used to override the
- default length which is determined as the length of the
- index key. Sometimes the index key is very long and you
- will want to restrict the area available for entry, enter a
- number that is smaller than the size of the index key if you
- use this otherwise leave it as zero to use the default size.
- If you enter a value larger than the key or larger than the
- window width, the results will be unpredictable.
-
- Bounded by - will only be allowed if the "QWERTY Scroll?
- (Y/N)" field is set to "N". Enter the name of a field -
- most likely part of the controlling index - and in the
- generated source code you will have to position the database
- where you like before the PLIST() function is called. The
- Pick List function will only scroll records where the
- entered fieldname is equal to the value when the function
- was initiated. These records must be contiguous in the
- database, as soon as the entered fieldname changes,
- scrolling will not be allowed. This option restricts any
- scrolling to a subset of your database.
-
- Note that if you need to use the QWERTY Scroll feature AND
- Bounded By, this can be accomplished by editing the program
- source code manually. See the Function Reference Guide,
- PLIST() function for more information.
-
- "Bounded by" example:
-
- You have a database that contains information on your
-
- Page: 31
-
- factories. You have three factories, called Plant-A, Plant-
- B and Plant-C. You want to scroll through the Plant-B data
- records but not encounter any Plant-A or Plant-C records.
- You have an index on the PLANT_ID field (contains "A","B",
- or "C" to identify the factory). Enter 'PLANT_ID' in the
- Bounded by Pick List field. Then after you have generated
- the source code, add the command
-
- 'DBSEEK("B")' just before executing the PLIST() function.
- This will position the database to the first Plant-B record
- and scroll ONLY those PLANT_ID records. Therefore no Plant-
- A or C records will be seen. Be aware that it is the
- programmers responsibility to position the record pointer
- prior to the call to PLIST()!
- Page: 32
- ADD WINDOW - COPY WINDOW
-
- To make an EXACT duplicate of an existing BUILDER window,
- select the "Copy Wndw" option of the "Add Window" sub-menu.
- A picklist will be displayed showing all the windows
- available to be copied (Everything except the root menu).
- The picklist displays the procedure name (sort order) and
- the window comment on each line of the list. Use the
- Up/Down arrows, Page Up/Page Down keys to move the highlight
- bar to the window you would like to duplicate. Press ENTER
- to select the highlighted window for copying.
-
- The Add Window pick list will look something like this:
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrowse ║══════════════════════════════════════════════════╝
- ░░░░░░░░░░░░░░░║ File Maint ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rel╔═══════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Han║█DLOG023█cust/vend aging dlog██████████║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║█Cop║ DLOG025 Order Entry Detail ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════║ DLOG027 entry of items ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG029 Add Ship 2 in Order ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG030 Order Number and Ord ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG038 Look at order detail ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG040 ship label qty ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░╚═══════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down, PgUp/PgDn to Move Pointer ▓ ENTER to Select ▓ ESC to Exit ▓
-
-
- A prompt will then be presented that asks you to confirm
- that you would like to copy the selected window. See the
- following screen sample shows this. Page: 33
-
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrowse ║══════════════════════════════════════════════════╝
- ░░░░░░░░░░░░░░░║ File Maint ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rel╔═══════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Han║█DLOG023█cust/vend aging dlog██████████║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║█Cop║ DLOG025 Order Entry Detail ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════║ DLOG027 entry of items ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG029 Add Ship 2 in Order ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG030 Order Number and Ord ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG038 Look ╔═══════════════════════════════╗░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░║ DLOG040 ship ║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░╚══════════════║ Create Copy of this Window? ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Press Y-Yes or N-No ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╚═══════════════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down, PgUp/PgDn to Move Pointer ▓ ENTER to Select ▓ ESC to Exit ▓
-
-
- Answering Y to the above dialog will create a duplicate of
- the window selected.
- Page: 34
- ADD WINDOW - HAND CODE
-
- Selecting the "Hand Code" Option from this menu will present
- a window for entry of the window comment. Once entered, a
- text editor is placed on the screen for entry of your own
- source code statements.
-
- The editor is simply a call to the Clipper MEMOEDIT()
- Function. All the editing functions available in MEMOEDIT()
- will be available in the "Hand Code" entry window.
-
- When editing "Hand Code", Pressing the Ctrl+PgDn key
- combination will present the prompt "O.K. to Delete? (Y/N)".
- Answering Y-Yes will permanently delete the current "Hand
- Code" and remove the hand code psuedo-window from your
- application prototype. Answering N-No will resume editing
- the "Hand Code".
-
- The hot-key Alt+P will be enabled, this will enter the
- source code statements to take and react to a yes/no prompt.
- This will only be worth using when immediately following a
- dialog box.
-
- You can enter the text "@NXTWNDW" (no quotes, in upper case
- only). When the source code is created all occurances of
- "@NXTWNDW" will be replaced with the name of the function or
- procedure for the window which follows the hand code
- section. This allows you to conditionally control access to
- the window that follows a hand coded section. Also entering
- parameters to the next window, like "@NXTWNDW( cParm1,
- dParm2 )" will create these parameters in the procedure
- declaraction in the following window.
-
- If no "@NXTWNDW" is entered in a particular hand coded
- section, two additional lines of code will be added when the
- source code is generated. They consist of a call to the
- following window (if there is one), and a RETURN command.
-
- If an "@NXTWNDW" is entered but there is no window following
- the hand coded section, a comment is entered explaining this
- error condition exists.
-
- You can use the "@NXTWNDW" command to pass parameter out of
- a hand code section, you can also use another command,
- "@FUNC" or "@FUNCTION" to pass parameters into a hand code
- section. If used, the "@FUNC" command must be the first
- non-comment line of a hand code section it must also decare
- the hand code section as a FUNCTION or PROCEDURE. For
- example entering the following
-
- FUNCTION @FUNC( cParm1, dParm2 )
-
-
- Page: 35
-
- would declare the hand code section as a function (default
- is PROCEDURE), thus requiring a value to be returned. Also,
- since parameters are placed in the declaraction, the call to
- the hand code section from the previous window will pass
- "cParm1" and "dParm2" as parameters. Using hand code
- sections to pass parameters facilitates the use of LOCAL
- instead of PRIVATE variables.
- Page: 36
- ADD WINDOW - TBROWSE
-
- Selecting "TBrowse" from the "Add Window" menu will first
- present the TBrowse initialization screen. See the
- following screen sampe for an example of this screen.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ╔════════════════════════════════════════════╗ ║
- ╔══════════════║ Comment: ██████████████████████████████ ║══════════════════╗
- ║ █Maint║ Edit Help: N ║ Reports ║
- ╚══════════════║ ║══════════════════╝
- ░░░░░░░░░░░░░░░║ Database: ████████ Index Order: █0 ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Bounded by: ██████████ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rec # Column when Initialized? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Toggle of Rec # Column N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Append of New Records? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Search by Index? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Index Order Changes? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Column Width Changing? Y ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Column Freezing/UnFreezing? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Column Delete/Restore? Y ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Full Width Highlight Bar? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Records to be Deleted? N ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Answer TBrowse Questions ▓ PgDn-Edit Columns ▓ ESC-Exit ▓
-
-
- Answering questions on this screen will allow you modify
- features of Builder TBrowses. Builder TBrowses can be set
- up to view whole databases, portions of databases, or as
- child relations of other TBrowses. You can easily activate
- several TBrowses at the same time with a small amount of
- hand coding. There are also a few TBrowse modifications
- that can only be made by hand in the generated source. See
- the Library Reference on the DictPut() function for more
- information on this.
-
- TBrowse initialization screen field descriptions:
-
- Comment - The comment entered here will be placed in the
- generated source code in a Proc Map at the beginning of the
- file and in a small comment section preceeding the procedure
- where where the source for this specific window is located.
- Although entry is not required you should ALWAYS enter these
- comments.
-
- Edit Help - Each TBrowse has a maximum of two help
- screens, the generic help screen created by Builder and the
- one you can edit here. This help screen should include
- information about why the TBrowse is in the system. The
- keystroke and other navigation information is included in
- the Builder created generic help screen. Note that you
- cannot edit a help screen except when this item has been
- access from the "Change Window"/"Edit Elements" menu
-
- Page: 37
-
- selections.
-
- Database - Builder TBrowses will only browse databases.
- Entry into this field is required. If you attempt to bypass
- this field, a picklist of .DBF databases in the current
- directory is presented. Be sure that the database alias
- name you enter here will be opened in your program. See the
- "Files" menu "Edit Databases USEd" for more information on
- the application database list.
-
- Index Order - Enter a number between 0 and 15 here to
- indicate the index order number for the database in the
- preceeding field. If the database was located in the
- Builder database list and there are indexes listed for that
- database the bottom border of the window will display "F10 -
- Index List" when your cursor is positioned in this field.
- Press the F10 key when this is displayed to pick an index
- order from the presented list.
-
- Bounded by - Entry in this field is optional. If entered
- the records accessible will be restricted to the subset
- where the field name entered here is exactly equal to the
- value it had when the browse was activated. A browse is
- considered active when the browse pointer is displayed.
-
- Rec # Column when initialized? - You may add a special
- column to the TBrowse that contains the database record
- number. Answer Y here to place this column in the browse
- when the browse is first displayed. Enter N and it will be
- left off.
-
- Allow Toggle of Rec # Column - The Alt+N key combination
- can be activated to alternately remove and add a record
- number column to the active browse. Enter Y here to allow
- this, N to disallow.
-
- Allow Append of New Records? - Cursoring past the last
- record in a browse can, by entering Y here, allow new
- records to be added to the database. Enter N and records
- new records cannot be added.
-
- Allow Search by Index? - The Alt+S key combination can
- be activated to allow database index searches. When
- selected from a browse, a prompt will be displayed with the
- current index key value which can be modified. Change the
- field value to move to that area of the database nearest to
- what was keyed. Enter Y here to allow this, or N to
- disallow.
-
- Allow Index Order Changes? - The Alt+O key combination can
- be activated to allow the index order of the active browse
- to be changed. When pressed the user will be presented a
-
- Page: 38
-
- list a available index orders to select from. Enter Y here
- to allow this or N to disallow. Note that through hand
- coding in the TBrowse source you can exclude index orders
- from the list. See the DictPut() function in the Library
- Reference about the ORDEXCPT element.
-
- Allow Column Width Changing? - The Alt+W key combination
- can be activated to allow the width of TBrowse columns to be
- changed. When selected from a browse the column in question
- will be highlighted and a prompt containing the current
- width will be presented. Changing the number in the prompt
- will modifiy the column width. Enter Y here to allow this
- or N to disallow.
-
- Allow Column Freezing/UnFreezing? - The Alt+F and Alt+U
- key combinations can be activated to allow columns to be
- frozen at the left of the browse window. When selected fro
- ma browse the column for freezing will be highlighted and
- prompt will ask if that is the column to be frozen.
- Answering Yes will then freeze the column. Unfreezing
- happens immediately. Columns are unfrozen in the reverse
- order they were frozen. Enter Y here to allow this or N to
- disallow.
-
- Allow Column Delete/Restore? - The Alt+E and Alt+R key
- combinations can be activated to allow columns to be deleted
- and restored from a browse. Deleted columns are placed in a
- list and the list is displayed to restore them. Before a
- colum is deleted it is highlighted and a prompt is displayed
- that asks if the column should be delected, answering Yes
- will move the column to the Restore list. Enter Y to allow
- this or N to disallow.
-
- Full Width Highlight Bar? - A browse can be created with a
- highlight bar that is the full width of the window. Enter a
- Y here to allow this or N to disallow. Note that using this
- and an alternate column color or a conditional color in a
- column will cause the column colors to work incorrectly.
- This option should be set off when alternate colors are to
- be used in browse columns.
-
- Allow Records to be Deleted? - The Alt+D key combination
- can be activated to allow browse records to be deleted.
- Note that in order to get use of the Alt+D key combination
- Builder places the Clipper ALTD( 0 ) function in the
- beginning of the generated source. If you need access to
- the Clipper debugger, you will need to comment this out
- first !!
-
- Note that if you selected a Bounded by and you will be
- allowing records to be added, you will be presented with a
- list of fields after this screen. The list will contain the
- Page: 39
-
- fields in the database to be browsed. Tag all fields that
- preceed the Bounded by field in the index key and the
- Bounded by field. This will create items that will
- initialize key fields when new records are added.
-
- Note also that if you selected your browse with a Bounded by
- field AND you want to allow index searches you must enter an
- item into the browse procedure by hand. Be sure to enter
- the BNDPFX DictPut() element or your index searches will not
- work. See the DictPut() function in the Library Reference
- for more information.
-
- Warning: You will want to be careful to select browse
- options that are not mutually exclusive. For example
- allowing index order changes on a Bounded by browse will,
- obviously, not work.
-
- Once the TBrowse initialization screen has been completed,
- the column entry screen is presented. Enter as many columns
- as you like for your browse, but be aware that the more that
- are active the slower the performance. It is, like other
- Builder windows, much easier to add columns by using the
- "Import" menu item from the "Additional Items" menu.
-
- This is an example of the TBrowse column entry screen:
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ╔════════════════════════════════════════════╗ ║
- ╔══════════════║ Comment: ██████████████████████████████ ║══════════════════╗
- ║ █Maint║ Edit He╔═ TBROWSE ════════╡Record: 1 of 0╞════╗orts ║
- ╚══════════════║ ║ Column Heading: ║══════════════╝
- ░░░░░░░░░░░░░░░║ Databa║ ████████████████████████████████████ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Bounded ║ Picture: ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ████████████████████████████████████ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Rec # Co║ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow To║ Editable: █ (Y/N) ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Ap║ Default Color: █ (1, 2, or <space>) ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Se║ Initial Width: ██0 ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow In║ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Co║ Highlight Condition: (operate on x) ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Co║ ████████████████████████████████████ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Co║ Highlight Color: █ (1, 2, or <space>)║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Full Wid║ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Allow Re║ Field Name: ██████████ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ Field Type: █ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═════════║ Field Length: █0 Decimal █0 ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░╚═╡F10-Addtional Items╞════════════════╝░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- Enter TBrowse columns like other Builder elements, fill in
- the screen and press PgDn to save. Press PgUp/PgDn to see
- the previous/next column data. Enter TBrowse columns as
- follows:
-
- Column Heading - Enter the text of the column heading
- here, use a semicolon (;) in the heading as a 'carriage
-
- Page: 40
-
- return' to create multi-row headings. A column heading is
- required for each column.
-
- Picture - Enter either a valid Clipper picture string in
- this field or one of two special pictures that are
- interpreted by Builder when the code is generated. The
- special pictures are @MEMO and @EXEC:<function>.
-
- If the column is a memo data type enter @MEMO in the picture
- field. Whenever any alphabetic or numeric key or ENTER is
- pressed when the browse pointer is in this column a window
- will be displayed with the memo contents inside. If the
- column is set as editable, the cursor will be turned on and
- the memo will be editable otherwise the memo is display
- only.
-
- If @EXEC:<function> is entered in the picture field, the
- column data will not be displayed from a database but will
- be the literal text of whatever is in the Field Name field
- on this screen. Whenever any alphabetic or numeric key or
- ENTER is pressed when the browse pointer is in this column
- <function> will be executed. Be sure to put paranthesis and
- any parameters you wish to include in the function call.
- For example to display a message using the Builder MsgBox()
- function you would enter the following:
-
- @EXEC:MsgBox( {"Just a Little Message", ;
- "to Show How the", ;
- "@EXEC for TBrowses Works" })
-
- Though when keying this into Builder you would place it all
- on one line and wouldn't use the semicolon.
-
- Editable - Enter Y here to allow the database field in
- this column to be modified. Whenever any alphabetic or
- numeric key or the ENTER key is pressed the cursor is
- positioned in the pointer area of the current column and the
- field can be edited. If the Editable option is turned off
- then alphabetic and numeric key or ENTER sounds a tone.
-
- Default Color - Leave this field blank and the column
- will be displayed in the same color as the main browse
- window. Enter a 1 (one) to display the column in the
- Builder highlight 1 color or two to display it in highlight
- 2. See the Colors section in this manual for information on
- seeing and changing the TBrowse colors.
-
- Initial Width - Leave this field as zero and the column
- will be sized automatically by the Clipper TBrowse mechanism
- or enter the non-default width to set this column to another
- width.
-
-
- Page: 41
-
- Highlight Condition (operate on x) - Leave this field
- blank and all the records in the column willl be displayed
- in the column color. By entering a value here you can
- change the color of selected records of a TBrowse column.
- The variable x will be passed into a codeblock and will
- contain the database field data of this column. Whatever
- you enter here will be the code placed in that codeblock.
- Your code MUST return a logical data type. If .T. is
- returned the record is displayed in a different color that
- the rest of the column. For example you want to display a
- column that contains a date data type in a different color
- when the column field contains a value that is 30 days older
- than todays date, enter this:
-
- DATE() - x > 29
-
- Whenever the DATE() minus the field data in a record (x) is
- greater than 29 then that field in the column will be
- displayed in a different color. See the next field on this
- screen for choosing which color.
-
- Highlight Color - Enter a 1, 2, or blank here to choose
- the color to display when a highlight condition is used.
- Enter a 1 or 2 to select highlight 1 or highlight 2 or leave
- this blank to select the browse main color. Note that this
- is only used in conjuction with the preceeding field and
- that a color change will not be noticable if the color
- selected here is the same as the Default Color field on this
- screen.
-
- Field Name - Must be a valid field name in the database
- selected in the TBrowse initialization screen unless the
- @EXEC picture value is used, in that case the field cannot
- be blank.
-
- Field Type - database field data type.
- Field Length - database field length.
- Field Decimal - database field decimal positions for
- numerics.
-
- Note that you can use a little trick to to place rarely used
- columns in the Restore column list before the browse is
- activated with some simple hand coding. See the DelColPut()
- function in the Library Reference for information on this.
-
- If you want to set up more than one TBrowse and have them
- all visible at the same time, see the documentation in the
- Library Reference on the BrowseDb() function. Also see the
- Builder Library Reference on the DictPut() and DictGet()
- functions for documentation on how to use your own key
- handler, remove index orders from the index list, and add a
- SEEK prefix for bounded by TBrowses.
-
- Page: 42
-
- ADD WINDOW - REL MAINT
-
- Selecting the "Rel Maint" option from the "Add Window" menu
- will present the Rel Maint initialization screen. This
- looks like the following screen samaple:
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrowse ║══════════════════════════════════════════════════╝
- ░░░░░░░░░░░░╔═════════════════════════════════════════════════════════════════╗░
- ░░░░░░░░░░░░║ Select File: ████████ Index Order: █0 Menu Opts: ACD ║░
- ░░░░░░░░░░░░║ Bounded by: ██████████ Parent File: ████████ Field: ██████████ ║░
- ░░░░░░░░░░░░║ Comment: ██████████████████████████████ ║░
- ░░░░░░░░░░░░║ ║░
- ░░░░░░░░░░░░╚═════════════════════════════════════════════════════════════════╝░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Procedure Comment ▓ ESC-Exit ▓
-
-
- Use Builder Rel Maint's to set up basic file maintenance for
- child database relations. You needn't have actual
- DBRELATION()'s set up, as this would cause a great
- performance loss, simply enter these fields carefully.
-
- Note that you may want to preceed Rel Maint windows with a
- small Hand Code Section that will position the database to
- the correct record.
-
- Initialize a Rel Maint as follows:
-
- Select File - Enter the database alias name of the database
- you wish to be maintained in this Rel Maint window. It is
- best to enter an alias that has already been entered into
- the Builder database list. This field is required and if
- bypassed a list of .DBF databases in the current directory
- will be presented. See "Files"/"Edit Databases USEd" in this
- document for more information on this.
-
- Index Order - Enter a number between 0 and 15 here to
- indicate the index order number to use to maintain
- relational integrity. If the alias name entered in the
- previous field is found in the Builder database list the
- bottom border of this window will display "F10 - Index List"
- when the cursor is positioned here. If allowed, press F10
- to select an index order from this list.
-
- Page: 43
-
- Menu Opts - Normally a Rel Maint has three menu options,
- these are "Add", "Change", and "Delete". These are
- represented by the letters "A", "C", and "D" in this field.
- Removing any of these letters will cause it's menu option to
- be removed from the maintenance window in the application.
- If this field is blank or none of the letters "A", "C", or
- "D" is present the Rel Maint will be constructed without any
- menu options and be a view only window.
-
- Bounded by - Enter the field name that is in the Select
- File database whose value must remain exactly the same as
- when the Rel Maint is started. If the Bounded by field
- value changes that marks either the top or the bottom of the
- Rel Maint records. Entry here is required.
-
- Parent File - Enter the database alias name of the parent
- database for the Rel Maint here. This should also be
- entered into the Builder database list. Entry into this
- field is required if bypassed a list of .DBF files in the
- current directory is presented.
-
- Field - Enter the name of the field in the parent database
- that must exactly equal the field in the child database to
- maintain the relationship. Although there may be several
- fields included in a relation condition there will always be
- one field that is the lowest level sort order and will still
- maintain the relationship.
-
- Comment - The comment entered here will be placed in the
- generated source code in a Proc Map at the beginning of the
- file and in a small comment section preceeding the procedure
- where where the source for this specific window is located.
- Although entry is not required you should ALWAYS enter these
- comments.
-
- Once the Rel Maint initialization screen is properly filled
- out the elements screen is presented. On this screen you
- enter the display and keyboard entry items each screenful of
- information about these is call an element.
-
- The elements screen will look like the following: Page: 44
-
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║ Dialog ║ Process Reports ║
- ╚══════════════║ TBrowse ║══════════════════════════════════════════════════╝
- ░░░░░░░░░░░░╔═════════════════════════════════════════════════════════════════╗░
- ░░░░░░░░░░░░║ Select File: TEST████ Index Order: █1 Menu Opts: ACD ║░
- ░░░░░░░░░░░░║ Bo╔═ REL MAINT ══════════╡Record: 1 of 0╞════╗ield: TEST██████ ║░
- ░░░░░░░░░░░░║ ║ Display Text: ║ ║░
- ░░░░░░░░░░░░║ ║ ████████████████████████████████████████ ║ ║░
- ░░░░░░░░░░░░╚════║ Enhanced Color?: N (Y/N) ║═════════════════╝░
- ░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░║ GET var: ██████████ Length: ██0 ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░║ Picture: ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░╚═╡F10-Addtional Items╞════════════════════╝░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- It is easiest to initially add all the Rel Maint elements by
- using the "Import" option on the "Additional Items" menu.
- See the section in this document entitled "Addition Items
- Menu" for more information on how to do this.
-
- You will want to be careful not to put any key fields on
- your Rel Maint screen. Allowing entry into a key field
- would cause the database pointer to possibly be moved
- outside the boundries you intend.
-
- Enter the fields on the element screen as follows. Press
- the PgDn key to save and element. Press PgUp and PgDn to
- move to the previous and next elements.
-
- Display Text - The text entered here will become text
- displayed in the Rel Maint window. If the GET var field on
- this screen is left blank then entry here is required.
-
- Enhanced Color? - Enter a Y here to have the Display Text
- shown in the "Window Message" screen color. Enter N for
- "Window Normal" as the color. You can view/change these
- colors from the "Main Colors" Builder screen. See the
- Colors section in this document for more information on
- application colors.
-
- GET var - Enter the name of the database field for a screen
- GET to be placed in the Rel Maint window here. Normally you
- will not need to enter this value because the "Import" menu
- option should place the correct data here for you.
-
- Length - Enter the length of the GET var variable
- here. Normally you will not need to enter this value
- because the "Import" menu option should place the correct
-
- Page: 45
-
- data here for you.
-
- Picture - If you want a PICTURE clause added to your GET,
- enter a valid Clipper PICTURE (either with or without
- quotes) in the "Picture" field.
-
- Enter "@MEMO" here if the "GET var" is a memo data type (no
- quotes all caps).
-
- Enter '@MENU:{"prompt1","prompt2",...,"promptn"}' to create
- a 'Menu' GET (leaving out the two single quotes). All menu
- GETs will be positioned across the screen (horizontal), the
- length will be computed and the field presented on the
- BUILDER screen with the correct size. The "GET var" for a
- 'Menu' GET must be a character or numeric data type ONLY.
- The menu code will read the data type and return the menu
- selection based on the data type.
-
- Enter '@DROPDOWN:{"Entry1","Entry2",...,"Entryn"}' here to
- create a dropdown list box GET (leaving out the two single
- quotes). The length of the display will be determined as
- the length of the longest array element. The GET variable
- MUST be a numeric data type! The value placed in the "Get
- var:" will be the array element number selected. When the
- drop down listbox has GET focus the up/down arrow keys will
- not move to the previous/next get but instead will move
- through the array selections. Use the TAB/Shift+TAB to move
- between fields. Also the Alt+DownArrow key or clicking on
- the arrow button will display the drop down listbox.
-
- Note: @MENU is NOT available to Summer '87 Users!!
- Page: 46
- OPTIONS
-
- Select "Options" from the BUILDER main menu to modify the
- information you entered at system startup.
-
- See the section in this document titled "GETTING STARTED"
- for a detailed list of all the "Options" and their allowable
- values.
- Page: 47
- FILES
-
- Selecting "Files" from the BUILDER main menu will present
- the "Files" submenu which contains four selections that deal
- with files for the application you are building. It looks
- like the following screen example.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║█Edit Databases USEd█████║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintena║ Data Dictionary ║ Reports ║
- ╚═════════════════║ Generate Source Code ║══════════════════════════════════╝
- ░░░░░░░░░░░░░░░░░░╚═════════════════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right ▓ ENTER-Select ▓ ESC-Exit ▓
-
-
- The Files menu has four options:
- Edit Databases USEd - Provides BUILDER with a list of
- databases and indexes your application will require.
-
- Modify/Create Structure - Create or change .DBF databases
- structures.
-
- Data Dictionary - Edit, Update, or Report the Builder Data
- Dictionary.
-
- Generate Source Code - Creates a BUILDER source file (.PR1),
- a header file (.ch) for the application and, if none already
- exists, a make (.rmk) file for the application.
- Page: 48
- FILES - EDIT DATABASES USED
-
- Selecting the "Edit Databases USEd" option of the "Files"
- submenu will present the database/index list window which
- will allow you to create and maintain a list of all the
- databases and indexes your system will require. As in the
- following screen sample.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║█Edit Databases USEd█████║plication ║
- ╔═════════════════║ Mo╔═ DATABASES ════════════════════╡Record: 1 of 0╞════╗═══╗
- ║ █Maintena║ Da║ Database: ████████ MemVar Prefix: █ ║ ║
- ╚═════════════════║ Ge║ Alias: ████████ RDD Name: ████████ ║═══╝
- ░░░░░░░░░░░░░░░░░░╚═══║ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ Indexes Key Expression ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ████████ ████████████████████████████████████████ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░╚════════════════════════════════════════════════════╝░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- Database - Enter the filename of a database your system will
- need opened in the this field.
-
- MemVar Prefix - Optionally enter the "Memory variable
- prefix" character. You may enter any alphabetic character,
- the letter "Q" is the default. When the database is opened,
- a memory variable will be created for every field in the
- database. The memory variable will be identical to the
- field variable except it will be prefixed by the character
- you enter in this field. See the DBPUBL and DBSTOR function
- documentation in the BUILDER Library Reference for more
- information. Only consider entering this field if you are
- producing Summer '87 style code. For Clipper 5.x users be
- sure to leave this blank, BUILDER will enter is automati
- cally when the source is generated - see the header (.ch)
- file for your application for the prefixes automatically
- selected by BUILDER.
-
- WARNING for Summper '87 users::The "Memory variable prefix"
- can DESTROY your data if used improperly! For example you
- have two database fields: ZREAL_DATA1 and ZREAL_DATA2. The
- field names are both at the Clipper maximum of 10
- characters. When converted to memory variables using the
- "Memory variable prefix" character, they will become
- (assuming a prefix character of "Q") QZREAL_DATA and
-
- Page: 49
-
- QZREAL_DATA! Identical and the second field's data will be
- lost. The moral to the story is NEVER EXCEED 9 CHARACTER
- FIELD NAMES!
-
- Alias - If the database name in the "database" field is not
- the alias you want to use in your program, enter the
- alternate alias in this field. Note that some valid
- filename characters cannot be used in the alias - I have not
- seen this anomaly documented in any Clipper manuals or
- books. (watch out for hyphens)
-
- RDD Name - Enter the name of any available RDD in this field
- and the database plus the associated indexes will be opened
- using that RDD. The first three characters of the RDD name
- will be assumed to be the database filename extension. Note
- that BUILDER uses a 'fake' RDD called "DBFIDX" for access to
- FoxPro ".IDX" files, using "DBFCDX" allows access to FoxPro
- ".CDX" databases. This is neccesary because both ".IDX" and
- ".CDX" indexes are supported with the Clipper "DBFCDX" RDD.
-
- Indexes / Key Expression - There is room to open twelve (12)
- indexes for any database, if you need more continue on the
- next record and adjust the source code, enter the index name
- under the heading "Indexes" and the key expression
- associated with it under the "Key Expression" heading.
- Page: 50
- FILES - MODIFY/CREATE STRUCTURE
-
- To modify the structure of an existing "DBFNTX" .DBF
- database or create a .DBF database select the "Modify/Create
- Structure" option of the "Files" submenu. You should see a
- screen similar to the following sample.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║█Modify/Create Structure█║══════════════════════════════════╗
- ║ █Maintena║ Da╔═════════════════════════════════╗ Reports ║
- ╚═════════════════║ Ge║ Database: █████████████████████ ║══════════════════════╝
- ░░░░░░░░░░░░░░░░░░╚═══║ ║░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░╚═════════════════════════════════╝░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Database Name ▓ ESC-Exit ▓
-
-
- Selecting this option will present a dialog which will
- require you to enter the name of a database whose structure
- you want to modify/create. If you press ENTER with the
- "Database" entry field blank and there are .DBF files in the
- default DOS directory, a pick list will be presented for you
- to select from these files. If you press the F10 key while
- the picklist is displayed, you will be able to print ALL the
- structures listed in the picklist window at once . You must
- select something from the picklist or enter something into
- this dialog to get to the structure modification/creation
- window.
-
- The structure modification window contains four columns into
- which you enter your database structure. See the following
- sample screen .
- Page: 51
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║█Modify/Create Structure█║══════════════════════════════════╗
- ║ █Maintena║ Da╔═════════════════════════════════╗ Reports ║
- ╚═════════════════║ Ge║ Database: TEST████████████████ ║══════════════════════╝
- ░░░░░░░░░░░░░░░░░░╚═══║ ╔══════════════════════════════════════╗░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░╚════║ Structure: TEST.DBF ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ╔═Name═══════Type══════Len═Dec═╗ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ██████████ █████████ ██0 ██0 ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║ ║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ╚══════════════════════════════╝ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░╚═╡F10-Print Structure╞════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down-Prev/Next Field ▓ 1st Char is A-Z, Rest Are 0-9, A-Z or _ ▓ ESC-Exit ▓
-
-
- Enter the field name in the first column, the first
- character must be "A" through "Z", the rest of the field
- name may contain any alphabetic or numeric characters plus
- the underscore. A field name can be from one to ten
- characters in length.
-
- The second column, "Type", refers to the field data type.
- There are five possible field data types, you only need to
- enter the first character of the field type you want. The
- five field data types are as follows:
-
- C - Character. Alphanumeric text type data.
- N - Numeric. Containing a value that can be operated on
- using mathematical calculations.
- D - Date. Will only be allowed to have a valid date. Can
- use mathematical calculations to get a resultant date also.
- M - Memo. System will generate a .DBT file to store "word
- processing" like text.
- L - Logical. Can be set to true (.t.) or false (.f.) only.
-
- The third column is the length for the field of the name and
- type already entered. If you entered Date, Memo, or Logical
- as the field type; the length will be automatically entered
- for you. The maximum length for a Character field is 255
- bytes, for Numeric 20. Date, Memo, and Logical field
- lengths are static fixed sizes and entered by BUILDER
- automatically.
-
- The fourth column is only used if the field type is set to
- Numeric and the allowable size varies. The allowable values
- (as with the other three columns) will be displayed on the
- bottom line of the screen.
-
-
- Page: 52
-
- Use the up/down arrows and page up/page down keys to move
- between previously defined fields. Press the F10 key and
- the database structure will be printed at the printer port
- assigned in the "Printer Port" field of the "Options"
- window.
-
- Press Ctrl+N to insert a field and Ctrl+Y to delete a field.
- These are the only key combinations not displayed on the
- screen so you will need to remember them. They are the same
- as in dBASE III+ so it shouldn't be difficult.
-
- Press the ESC key to exit.
-
- If you have made any changes a dialog window will be
- presented asking if you would like to make the structure
- changes permanent. Answer Yes or No to the question. If
- you answer YES the old structure will be saved to a .BAK
- file, the new structure will be appended with the old
- structures data records if there were any. If you answer
- No, nothing will be changed.
- Page: 53
- FILES - DATA DICTIONARY
-
- The Builder dictionary menu consists of four menu items and
- looks like the following screen:
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║█Edit Data Dictionary███████████║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Update from Another Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Update from "Databases USEd" ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Data Dictionary Reports ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░╚════════════════════════════════╝░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down, Left/Right-Move Pointer ▓ ENTER-Select▓ ESC-Exit ▓
-
-
- The Builder Data Dictionary allows you to create a list of
- all the database and memory variable elements you will be
- using for your application. For each database field or
- memory variable in your system you can maintain several
- defaults. The defaults entered into the Data Dictionary are
- copied to Builder windows when an "Import from Data
- Dictionary" is performed. This is especially useful for
- larger systems where many programs will be created using the
- same set of databases. Or when database fields are going to
- be used in many windows of a system. This removes the need
- to re-enter the display text, picture, valid information,
- and help text every time a database field or memory variable
- is used.
-
- Data Dictionary elements can easily be shared between
- Builder applications, eliminating the need to re-enter
- information in a new application by utilizing the data
- dictionary items from previous Builder systems.
-
- Two simple reports are included to help in documenting your
- applications.
-
- If you are creating a "quick and dirty" system with Builder,
- it is advisable to NOT use the Data Dictionary. In this
- type of system, using the Data Dictionary can actually cause
- an increase in the amount of time needed to create a working
- system.
-
-
- Page: 54
-
- Use each of the menu options for the following purposes:
-
- Edit Data Dictionary - Use this to change or delete a
- dictionary item. You can add memory variable items, but not
- database items (Use 'Update from "Databases USEd"' to add
- database fields). You can also delete an entire database
- from the dictionary using this menu option.
-
- Update from Another Dictionary - Use this option to add
- items to the current dictionary from another Builder Data
- Dictionary.
-
- Update from "Databases USEd - Use this option to initialize
- or update your data dictionary from the fields of the
- databases that have been entered into the "Databases USEd"
- list for your Builder application.
-
- Data Dictionary Reports - You can print the data dictionary
- reports using this menu option.
-
- Select the data dictionary menu option to accomplish what
- you require, or press ESC to exit this menu.
- Page: 55
- FILES - DATA DICTIONARY - Edit Data Dictionary
-
- When selected, you will be presented with a list of
- databases (plus "*MEMVAR*") whose fields are available to be
- edited. Similar to the following should appear.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data█Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║█Edit█Data█Dictionary███████████║░░░░░░░░░░░░░░░░░░░
- ░░╔══════════════════════════════════════════════════╗onary ║░░░░░░░░░░░░░░░░░░░
- ░░║█*MEMVAR*█System█Memory█Variables█████████████████║Ed" ║░░░░░░░░░░░░░░░░░░░
- ░░║ GEVAL ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ PASSWORD ║══════╝░░░░░░░░░░░░░░░░░░░
- ░░║ SEVAL ║░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░║ USERLIST ║░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░╚══════════════════════════════════════════════════░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down, PgUp/PgDn to Move Pointer ▓ ENTER to Select ▓ ESC to Exit ▓
-
-
- You can only edit the fields for one database at a time.
- Select "*MEMVAR*" to edit the memory variables for your
- application, these are treated very much like a separate
- database in the Builder data dictionary.
-
- Note that you cannot add fields to a data dictionary
- database field list, you can only add to the "*MEMVAR*"
- (memory variable) list. In order to make database field
- changes in the data dictionary, one of the automatic updates
- must be selected.
-
- Before data dictionary items can be edited, you must first
- intialize the list using one of the two "Update" data
- dictionary menu options.
-
- Once you select a database (or "*MEMVAR*") the main data
- dictionary edit window appears and looks like the following
- screen sample.
- Page: 56
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Mainte╔═ D-DICT FIELDS ══════╡Record: 1 of 0╞════╗ Setup ║
- ╚══════════════║ Field Name Field Type Length Decimal ║═╗══════════════════╝
- ░░░░░░░░░░░░░░░║ ██████████ █ ███0 █0 ║ ║░░░░░░░░░░░░░░░░░░░
- ░░╔════════════║ ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ *MEMVAR* Sy║ FIELD DEFAULT VALUES: ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ GEVAL ║ Display Text ███████████████████████████ ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ PASSWORD ║ Picture ███████████████████████████ ║═╝░░░░░░░░░░░░░░░░░░░
- ░░║ SEVAL ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ USERLIST ║ Report Column Heading ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░╚════════════║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Description ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═╡F10-Additional Items╞═══════════════════╝░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter New Information ▓ PgDn-Save ▓ ESC to Exit ▓
-
-
- You will have four defaults available to enter for each data
- dictionary item. Four additional fields must be entered for
- memory variables in order to describe the variable's name,
- data type, and length.
-
- Each of the four defaults that can be entered on this screen
- are optional.
-
- Display Text / Picture - These will be used as the default
- values when imported into a Builder File Maintenance or
- Dialog window.
-
- Report Column Heading - Will be utilized when you use the
- field exclusively as a BREPORT column entry. In other
- words, you enter ALIAS->FIELD_NAME as the BREPORT column
- data, and the column heading will be entered automatically.
- Note that this only applies to "COLUMN" type reports when
- using BREPORT!
-
- Description - This is used on the data dictionary reports.
- This is a useful documentation tool only and is not used in
- any other way.
-
- The four fields on the top of this screen window can only be
- modified when adding or editing "*MEMVAR*"s. If you need to
- make changes to a database field's data type or length, use
- the "Update from "Databases USEd"" Data Dictionary menu
- option.
-
- The first three of these are required:
-
- Field Name - is a one to ten digit memory variable name,
- use Clipper variable naming requirements when entering this
- Page: 57
-
- value.
-
- Field Type - can be "C"-Character, "N"-Numeric, "D"-Date,
- "M"-Memo, or "L"-Logical only. The same variable types as
- available in the Clipper programming language. (no surprise
- here)
-
- Length - is the length of the variable, the allowable values
- vary for the different data types. Character variables can
- be up to 999 characters in length. Numerics can be between
- 20 and 3. Date, Memo, and Logicals are fixed and entered
- for you (8, 10, and 1).
-
- Decimal - can only be used when the data type is Numeric and
- determines the number of decimal places for the numeric
- memory variable.
-
- Use the Page-Down key to save each screen entered. Use
- Page-Up and Page-Down to scroll to the previous and next
- records in the data dictionary. Pressing the F10 key will
- present a menu of "Additional Items" for further construct
- ing your data dictionary items.
- Page: 58
- FILES - DATA DICTIONARY - Edit Data Dictionary - Additional Items
-
- The "Additional Items" menu has five options and looks like
- the following screen sampel.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Mainte╔═ D-DICT FIELDS ══════╡Record: 1 of 0╞════╗ Setup ║
- ╚══════════════║ Field Name Field Type Length Decimal ║═╗══════════════════╝
- ░░░░░░░░░░░░░░░║ ██████████ █ ██0 █0 ║ ║░░░░░░░░░░░░░░░░░░░
- ░░╔════════════║ ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║█*MEMVAR*█Sy║ FIELD DEFAULT VALUES: ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ GEVAL ║ Display Text ███████████████████████████ ║ ║░░░░░░░░░░░░░░░░░░░
- ░░║ PASSWORD ║ Picture ███████████████████████████ ║═╝░░░░░░░░░░░░░░░░░░░
- ░░║ SEVAL ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ USERLIST ║ Report Column Heading ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░║ ║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░╚════════════║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Description ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║█Valid█Edit-Help File-Desc Copy-In Delete ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right-Move Pointer ▓ PgUp/PgDn-Prev/Next ▓ ENTER-Select ▓ ESC-Exi
-
-
- <Body text
-
-
- Valid - This allows you to attach a default VALID to the currently displayed field.
- Valids attached here will be copied to Builder Dialog and File Maintenance
- windows if this field is selected during an import from the data dictionary.
-
- Edit-Help - This option will allow you to attach a default detail help screen to the
- currently displayed field. Help screens attached here will be copied to Builder
- Dialog and File Maintenance windows if this field is selected during an import
- from the data dictionary.
-
- File-Desc - This simply allows you to edit the long description for the database in
- which the currently displayed field resides. Entering all the long descriptions
- makes documenting and pick list selections easier to understand. Entry is
- optional.
-
- Copy-In - You can use this selection to update a single data dictionary item from
- a Builder window element.
-
- Delete - This menu option will delete ALL the data dictionary items for the
- selected database. There is a confirmation prompt before the deletion is
- performed.
-
- IMPORTANT NOTE: The "Valid" and "Edit-Help" menu options in the data
- dictionary function exactly the same as their counterparts when editing Builder
- screen elements. See the documentation on these items under the table of
- contents heading "Dialog/File Maintenance 'Additional Items' Menu" for more
-
- Page: 59
-
- information.
-
- More Details the Remaining Menu Options:
-
- Selecting "Copy-In" will present a picklist of all the dialog and file maintenance
- screen GETs. You will be able to scroll the picklist to any field. Pressing
- ENTER will select the highlighted field, or press ESC to abort the "Copy-In".
-
- The "Copy-In" option will behave differently when used in the "*MEMVAR*"
- fields than fields for your system databases.
-
- If a field is selected to be copied and you are editing the "*MEMVAR*" fields,
- the memory variables will be searched and if an exact field name match is found,
- the matching field will be updated. If a match is not found, a new memory
- variable data dictionary entry will be added. Only blank and non-existent data
- will be updated, no overwrites will be done when using "Copy-In".
-
- If you were editing a system database when you select a "Copy-In" field, only
- blank or non-existent data dictionary fields on the current item will be updated.
- Copy-In will attempt to update the "Display Text" (if blank), "Picture" (if blank),
- "Valids" (non-existents will be added), and "Help-Text" (if non-existent).
- FILES - DATA DICTIONARY - Update from Another Dictionary
-
- You can initialize or update your data dictionary from another Builder data
- dictionary located on another disk or in another subdirectory by using this menu
- option.
-
- This type of update is a DESTRUCTIVE update, in other words, it will overwrite
- your existing data dictionary fields. Doing this here has an advantage when
- several systems share common data. If one system's data dictionary is changed,
- each following system can update from the source system. This is also dangerous,
- so be careful!
-
- In order to perform the update, you first must enter the drive and subdirectory
- name where another Builder data dictionary resides. Enter this into the field in
- the window displayed when the "Update from Andother Dictionary" menu option
- is selected. This look like the following screen.
- Page: 60
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║ Edit Data Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║█Update█from█Another█Dictionary█║░░░░░░░░░░░░░░░░░░░
- ╔══════════════════════════════════════════════════════════════════╗░░░░░░░░░░░░
- ║ Enter the drive and pathname for the source data dictionary and ║░░░░░░░░░░░░
- ║ database/index list. You will be presented with a list of files ║░░░░░░░░░░░░
- ║ in that dictionary. Tag all the files whose dictionary data you ║░░░░░░░░░░░░
- ║ want copied into this system. ║░░░░░░░░░░░░
- ║ ║░░░░░░░░░░░░
- ║ Pathname \CLIPPER\BUILDER2██████████████████████████████████████ ║░░░░░░░░░░░░
- ║ ║░░░░░░░░░░░░
- ╚══════════════════════════════════════════════════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter Path of Source Directory ▓ ESC-Exit ▓
-
-
- Once this is done successfully, you will be presented with a picklist of the
- databases and database long descriptions that are in the source dictionary. Press
- "T" to tag each database whose fields you would like copied/changed in the data
- dictionary for the current system, pressing "T" a second time will un-tag a tagged
- selection. Use Up/Down/PgUp/PgDn to move the pointer to the desired
- selection. You may also press "A" to tag the whole list, or "U" to un-tag the
- whole list. Press ESC when you are ready to start the update. This screen should
- look like the following sample.
- Page: 61
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data█Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║ Edit Data Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║█Update█from█Another█Dictionary█║░░░░░░░░░░░░░░░░░░░
- ╔══════════════════════════════════════════════════════════════════╗░░░░░░░░░░░░
- ║ Enter the drive and pathname for the source data dictionary and ║░░░░░░░░░░░░
- ║ database/index list. You will be presented with a list of files ║░░░░░░░░░░░░
- ║ in that dictionary. Tag all the files whose dictionary data you ║░░░░░░░░░░░░
- ║ want copied into this system. ║░░░░░░░░░░░░
- ║ ║░░░░░░░░░░░░
- ╔═══════════════════════════════════════════════════╗█████████████ ║░░░░░░░░░░░░
- ║█*MEMVAR*-System█Memory█Variables██████████████████║ ║░░░░░░░░░░░░
- ║ SHOPMAST-Shop or Store Master File ║══════════════╝░░░░░░░░░░░░
- ║ LOTMAST -Lot or Package Control File ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ CPNMAST -Master Coupon Inventory File ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ BTCHMAST-Batch Control Master File ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ ORDMAST -Coupon Order Master File ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ RDMMAST -Redeemed Coupons Master File ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ RTRNMAST-Master File of Unsold Booklets Returned ║░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ╚═══════════════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ PgUp/PgDn-Scroll ▓ T-Tag Toggle ▓ A/U-Tag/Untag All ▓ ESC-Exit ▓
-
-
- If you have selected update items, you will be given a "Ready to Start"
- confirmation prompt. Pressing "Y" will begin the update process. This process
- can take a long time, so be patient.
-
- When it is complete, the data dictionary in the current system will contain an
- exact copy of the every item for the databases selected.
-
- Again be WARNED, this is a DESTRUCTIVE copy much like a DOS copy. If
- you copy the dictionary items from another dictionary on top of the current one,
- any customizations you wish to retain WILL BE LOST.
- FILES - DATA DICTIONARY - Update from "Databases USEd"
-
- Selecting 'Update from "Databases USEd" from the Data Dictionary menu will
- present a screen similar to the following.
- Page: 62
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data█Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║ Edit Data Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Update from Another Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║█Update█from█"Databases USEd"███║░░░░░░░░░░░░░░░░░░░
- ╔═══════════════════════════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░
- ║ Tag databases in this list to update the data dictionary. ║░░░░░░░░░░░░░░░░░░░
- ║ Structure differences between tagged databases and the ║░░░░░░░░░░░░░░░░░░░
- ║ data dictionary will be corrected. ║░░░░░░░░░░░░░░░░░░░
- ╔══════════╗ ║░░░░░░░░░░░░░░░░░░░
- ║█SEVAL████║════════════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░
- ║ GEVAL ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ ENVIRON ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ BDCTFLD ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ USERLIST ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ PASSWORD ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ╚══════════╝░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ PgUp/PgDn-Scroll ▓ T-Tag Toggle ▓ A/U-Tag/Untag All ▓ ESC-Exit ▓
-
-
- This update option allows you to initialize your dictionary from the fields in the
- databases you will be using in your application. This can also be used to update
- the dictionary if you have modified any database structures.
-
- Once selected, you will be presented with a list of database names located in the
- "Databases USEd" list (See the table of contents heading "File/Index List" for
- more information)
-
- Move the pointer through the list using the Up/Down/PgUp/PgDn keys. Select a
- database by pressing "T" to tag it, pressing "T" on a tagged name will un-tag it.
- Press "A" to tag the whole list, or "U" to un-tag the whole list.
-
- Press ESC when finished tagging and a "Ready to Start" confirmation prompt is
- presented. Press "Y" at the confirmation to begin the update.
-
- If a file name selected is not already in the data dictionary, it will be added. Field
- names not in the dictionary for a database will be added.
-
- The field name, data type, field length, and decimal length will be changed, if
- necessary, to reflect the current database structure.
-
- If a field or fields have been deleted from a database structure, those fields will
- be LEFT IN THE DATA DICTIONARY. You will need to delete an un-wanted
- field from the data dictionary by hand!
- FILES - DATA DICTIONARY - Data Dictionary Reports
-
- Page: 63
-
- Selecting this option from the Data Dictionary menu will present the following
- menu.
-
-
- Change Window Add Window █Files█ Options Colors Mode About Exit
- ║ ╔═════════════════════════╗are ║
- ║ ║ Edit Databases USEd ║plication ║
- ╔═════════════════║ Modify/Create Structure ║══════════════════════════════════╗
- ║ █Maintenan║█Data█Dictionary█████████║ Setup ║
- ╚═════════════════║ Generat╔════════════════════════════════╗══════════════════╝
- ░░░░░░░░░░░░░░░░░░╚════════║ Edit Data Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Update from Another Dictionary ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Update from "Databases USEd" ║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░║█Data█Dictionary█Reports████████║░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░╚════════════╔═════════════════════════╗░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║█Alpha█by█Database/Field█║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║ Alpha by Field Name ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╚═════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down, Left/Right-Move Pointer ▓ ENTER-Select▓ ESC-Exit ▓
-
-
- There are two data dictionary reports available:
-
- "Alpha by Database/Field"
- "Alpha by Field Name"
-
- Both reports have exactly identical opening pages and columns (except the second
- report has an additional "Database" column) . The difference is that the report by
- "Database/Field" prints one page per database, with the database fields sorted
- alphabetically on the page. The "Alpha by Field Name" report prints a continuous
- list of ALL database fields sorted alphabetically.
-
- The opening page contains help in understanding the rightmost report column.
- This column contains codes that indicate what information is attached to a data
- dictionary field.
-
- The report columns are:
-
- Field Name - The name of the database field as it appears in the database
- structure. Or as entered if it is a memory variable.
-
- Field Type-Len.Dec - A one character code indicating the data type of the field;
- followed by a dash, the field length, a period (if numeric) and the decimal length.
- Page: 64
-
- Data types can be "C"-Character, "N"-Numeric, "D"-Date, "M"-Memo, or "L"-
- Logical.
-
- Field Description"- The first 40 characters of the field long description entered
- into the data dictionary.
-
- Database - This column is printed on the "by Field Name" report only and
- contains the name of the database where the field is located.
-
- Items Attached - A 10 position column that indicates which VALIDs (if any) are
- attached to the database field. If a help screen is attached, and if a report column
- is entered.
-
- When a data dictionary report menu option is selected, another window is
- presented where you may enter the output device or filename to send the report.
- FILES - GENERATE SOURCE CODE
-
- To create Clipper source code select the "Generate Source Code" option from the
- "Files" submenu.
-
- You will be prompted "Ready to Generate Source? (Y/N)" press Y for yes or
- press N for no (ESC for No will also work). If the file to be created already
- exists, you will be prompted "File Exists, Overwrite? (Y/N)" - answer yes to
- generate source. Answer no to abandon this operation.
-
- Since this product is very easy to use, the source created is less what you would
- have written and more what I would have written. If you can deal with modifying
- my code you will like and enjoy the speed with which you can create applications
- with BUILDER. On the other hand, if you are a more free spirit and just have to
- use your own logic and algorithms you may not like the results. That, however you
- may view it, is the trade-off of making this a very easy to use product.
- COLORS
-
- Since there are so many colors to choose from, you will first be presented with a
- menu when the "Colors" Builder main menu option is selected. Choose between
- "Main Colors" and "TBrowse Colors". The main colors allow modification to most
- Builder application colors and TBrowse colors allow changing all the colors that
- pertain to a TBrowse window.
-
- This will present one of the color selection windows. The left side of a color
- selection window will be a menu from which you can select each color variable for
- modification. Use the up and down arrows and press ENTER to select the color
- to change.
-
-
- Page: 65
-
- After pressing ENTER on a color option a small display window will be presented
- under the color menu. See the sample screen on the next page. The display
- window will show the current SET COLOR TO scheme and whether you are
- currently changing the foreground or background color. Press the up and down
- arrow keys to increment and decrement the color. Press the left or right arrow
- keys to toggle between changing the foreground and background color. If you
- are changing the foreground color press the TAB key to toggle between a high
- and low intensity color. The colors you are changing will display in the right side
- of the color modification window, which is a small mock up of the application
- screen, as the changes are made.
-
- Press ESC to exit the "Colors" menu option. If any changes were made a prompt
- will display in the area under the color menu asking if you want to save the
- changes. Press Y to save the Changes or N to abort your changes.
-
- If you save color changes, exit to DOS an re-enter the BUILDER program to see
- your new color selections incorporated into your prototype. These colors will also
- be used in your application program.
- Page: 66
- MODE
-
- Select the "Mode" main menu option to set the application in
- one of two modes, "Development" or "Prototype". The default
- mode is "Development", when set and you press ENTER on a
- non-"File Maintenance" window in the application prototype
- the BUILDER "Add Window " menu will be presented. However,
- if you set the mode to "Prototype" pressing ENTER on a non-
- "File Maintenance" window will display a window in the
- center of the screen which reads "This Option Not
- Installed". The "Prototype" mode is useful when showing the
- proposed application to a user, in which case you wouldn't
- want the BUILDER menu popping up accidentally.
-
- To set the mode, select "Mode" from the main BUILDER menu.
- Press the right or left arrow keys to toggle between
- "Development" and "Prototype", press ENTER to set the mode
- or ESC to abort this operation.
- Page: 67
- ADDITIONAL ITEMS MENU
-
- While Adding or Editing detail items for a "Dialog Box" or
- "File Maintenance" window the bottom border of the BUILDER
- edit window has the message "F10 - Additional Items".
- Pressing the F10 key will present the Additional Items Menu,
- this menu has four selections:
-
- Valid, Append, Edit Help, and Delete.
-
- This menu will appear at the bottom edge of the screen
- window from which it is selected and looks like the
- following sample screen.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║█Dialog█████║ Process Reports ║
- ╚══════════════║ TB╔══════════════════════════════════════════════╗════════════╝
- ░░░░░░░░░░░░░░░║ Fi║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Re║ Mes╔═ DIALOG ═════════════╡Record: 1 of 0╞════╗░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Ha║ ║ Display Text: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Co╚════║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚════════║ Enhanced Color?: N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ GET var: ██████████ Length: ██0 ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Picture: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize?: N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize to: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╔══════════════════════════════════════════╗░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ █Valid█ Append Edit Help Delete ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right-Move Pointer ▓ PgUp/PgDn-Prev/Next ▓ ENTER-Select ▓ ESC-Exi
-
-
- In addition to using the arrow keys to move the menu pointer
- the Page Up and Page Down keys will skip backward and
- forward one screen element.
-
- Valid - allows you to attach a VALID to the currently
- displayed GET variable. See your Clipper documentation on
- the @...GET command for information on the VALID clause.
-
- Append - allows you to import the fields from a .DBF file or
- the data dictionary to create file maintenance or dialog
- window elements.
-
- Edit Help - make changes to the Help System screen for the
- current GET field.
-
- Delete - Delete ALL elements for the current window.
- Page: 68
- ADDITIONAL ITEMS MENU - VALID
-
- If the "Valid" option is selected from the "Additional
- Items" menu another menu is presented containing all the
- BUILDERable VALIDS for the GET currently being edited. The
- GET variable name will be displayed on the top border of
- this menu and the PgUp/PgDn keys will allow scrolling to the
- previous and next window element.
-
- This menu looks like the following screen sample.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║█Dialog█████║ Process ╔════════╡TEST╞═══════╗
- ╚══════════════║ TB╔═════════════════════════════════════║█Pick List Validate██║
- ░░░░░░░░░░░░░░░║ Fi║ Comment: ██████████████████████║ Check Character(s) ║
- ░░░░░░░░░░░░░░░║ Re║ Mes╔═ DIALOG ═════════════╡Record: 1║ Field Required ║
- ░░░░░░░░░░░░░░░║ Ha║ ║ Display Text: ║ Duplicate Check ║
- ░░░░░░░░░░░░░░░║ Co╚════║ ███████████████████████████████║ In a File Validate ║
- ░░░░░░░░░░░░░░░╚════════║ Enhanced Color?: N (Y/N) ║ Generic Valid ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ║ Right Justify Field ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ GET var: TEST██████ Length: ██║ Comment Only ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Picture: ╚═════════════════════╝
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize?: N (Y/N) ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initialize to: ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╔══════════════════════════════════════════╗░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ █Valid█ Append Edit Help Delete ║░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Up/Down Left/Right ▓ ENTER-Select ▓ ESC-Exit ▓
-
-
- Select the type of valid you would like to attach to the
- currently displayed GET variable using the up and down arrow
- keys. Press ENTER on that selection to display the valid
- entry dialog.
-
- If a GET already has a valid attached, the GET variable name
- will be surrounded by small arrow indicators. If the valid
- menu is displayed the selected valid(s) will have arrow
- indicators displayed on either side of the menu prompt and
- the menu highlight bar will be positioned at the first
- selected valid.
-
- Note that you may attach more than one valid to a GET
- variable if needed. However, in doing so it is very easy to
- go beyond the character limit for a single line of code when
- the code is generated. This may require some experimenta
- tion and/or adjustments to the source code.
-
- Also, some valids do not work well together. As a general
- rule, do not attach more than one valid to a GET that
- displays an error message.
-
-
- Page: 69
-
- To add or change a valid for the currently displayed GET,
- simply select it from the menu. A screen is presented blank
- if a preexisting valid is not found, or filled in if valid
- data is found. Cursoring past the last field in the entry
- window and answering Y (Yes) to the "Save This? (Y/N)"
- prompt will save the valid. Press the ESC key to abandon
- the changes. Pressing the Ctrl+PgDn key combination while
- editing a previously saved valid will present a prompt
- asking your confirmation to delete that valid.
- Page: 70
- ADDITIONAL ITEMS MENU - VALID - Pick List Validate
-
- Selecting the "Pick List Validate" valid for a GET variable
- will present a dialog window with a short description of
- what this valid does and a number of entry fields needed to
- create the valid. Following is a sample screen.
-
- The "Pick List Validate" valid will create the source code
- needed to make an indexed look up on a database of the
- keyboard entry into the GET field. If the value keyed into
- the GET field does not generate a FOUND() equal to .T.
- (true), then a pick list is given to the user of the nearest
- records in the database to what they entered. The user may
- PgUp/PgDn/Up Arrow/Down Arrow to the desired record. If the
- ENTER key is pressed the field data from the pick list
- selection is entered into the GET field. If the ESC key is
- pressed the pick list disappears and no action is taken.
-
- The following screen shows the "Pick List Validate" entry
- dialog:
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process ╔════════╡TEST╞═══════╗ ║
- ║█Edit Ele╔═════════════════════════════════════║ Pick List Validate ║════════╝
- ╚═════════║ Comme╔═══════════════════════════════════════════╗) ║░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIAL║ If the data entered into the GET does not ║ ║░░░░░░░░░
- ░░░░░░░░░░║ ║ Displ║ exactly match a SEEK into another file, ║ ║░░░░░░░░░
- ░░░░░░░░░░╚════║ █████║ have user select from a Pick List. ║e ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhan║ ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ File Alias: ████████ ║ld ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET v║ Field Number: ██0 ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Pictu║ Index Order: █0 ║═══╝░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ QWERTY Scroll? █ (Y/N) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ Display Expression (evaluated as a macro) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ █████████████████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ Bounded By: ██████████ (fieldname) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════║ Required? █ (Y/N) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █V║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════╚═══════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- Note that before the "Pick List Validate" can be used in
- your program the database will need to be created and opened
- as will the index files. You may also want to create a file
- maintenance routine for the look-up database. See the "Edit
- Databases USEd" and "Modify Create Structure" under the
- "Files" main menu option for more information on creating
- and opening database and index files.
-
- There are seven fields to be filled in for BUILDER to have
- the information to create the "Pick List Validate", They
- are:
-
-
- Page: 71
-
- File Alias: - This field is required but entry is not
- checked. If you try to bypass this field a list of .DBFs in
- the current directory will be presented for selection.
- Enter the alias name of the database with which to verify
- the GET entry.
-
- Field Number: - Enter the ordinal field position in the
- look-up database for the data to be placed in the GET field.
- This field is required to be greater than zero. You must be
- sure the field types and sizes in the look-up database and
- your GET field match. See the Clipper documentation on the
- FCOUNT(), FIELD() and FIELDNAME() functions for further
- information on ordinal field positions.
-
- Index Order: - This field is also required. Enter the index
- order number to use to do an indexed search for the GET
- input. Assistance with entry into this field is available
- if there are index entries for the database entered for the
- "File Alias:" field. The text "F10-Index List" will be
- displayed on the bottom of the window when a list is
- available.
-
- QWERTY Scroll: - Enter either Y-Yes or N-No. If set to Yes
- a 'field' will display on top of the pick list allowing the
- user to enter alphabetic data as search criteria. QWERTY
- Scroll is useful when traversing very large amounts of data.
-
- Display Expression: - Enter a display expression using
- fields from the look-up database and any database(s) related
- to it. The expression entered here, when evaluated as a
- macro, MUST evaluate to a character expression. This field
- has a maximum size of 150 characters, the field will scroll
- if you use more room than is available on the screen.
-
- Bounded By: - If you would like to restrict access to a
- subset of the database data, enter the look-up database
- field name here. This field must be a part of the index
- key preceding the field matching the GET field. The user
- will only see the part of the look-up database where this
- field remains exactly the same as when the pick list was
- initially presented. If used you will need to make changes
- to the Key Prefix Parameter for the call to the PCKVLD()
- function in the generated source code. See the Func
- tion/Procedure Guide documentation on the PCKVLD() function
- for more information.
-
- Required: - This field will accept either Y-Yes or N-No,
- enter Yes if the GET field cannot be left blank. Enter No
- if a blank is acceptable in this GET.
- Page: 72
- ADDITIONAL ITEMS MENU - VALID - Check Character(s)
-
- Selecting the "Check Character(s)" valid for a GET variable
- will present a dialog window with a short description of
- what this valid does and the two entry fields needed to
- create the valid. This screen looks like the following.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process ╔════════╡TEST╞═══════╗ ║
- ║█Edit Ele╔═════════════════════════════════════║ Pick List Validate ║════════╝
- ╚═════════║ Comment: ██████████████████████║█Check Character(s)██║░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIAL╔═══════════════════════════════════════════╗ ║░░░░░░░░░
- ░░░░░░░░░░║ ║ Displ║ The GET Value Must be Contained in the ║ ║░░░░░░░░░
- ░░░░░░░░░░╚════║ █████║ Search String You Enter, or the Error ║e ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhan║ Message Will be displayed. ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ ║ld ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET v║ Search String: ██████████████████████████ ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Pictu║ Error Message: ██████████████████████████ ║═══╝░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi╚═══════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initialize to: ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █Valid█ Append Edit Help Delete ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- The "Check Character(s)" valid function will verify that
- input keyed into a GET variable is embedded in the search
- string you supply. If the keyed value is not found, the
- error message is displayed and the cursor will not proceed
- to the next GET field.
-
- For example if the GET variable is one byte long and is
- required to contain a "Y" or "N" to indicate Yes or No, the
- search string should be entered as "YN" (without the
- quotes). If a blank space is acceptable the search string
- should be entered as " YN". If the GET variable is more
- than one byte in length a suitable delimiter should be used.
- For example the search string "A1~B2~C4" would allow "A1",
- "B2", or "C4" to be entered into a two byte field. The
- delimiter is needed to try to prevent the acceptance of
- erroneous input. For example if the previous example search
- string were entered as "A1B2C4" then the erroneous input of
- "1B" and "2C" would be allowed.
-
- Note that the data type for the GET variable must be
- character to use this valid function.
-
- Search String: - Enter a value such that the following
- returns true when the GET field is entered:
-
- GetVariable $ SearchString
-
- Page: 73
-
- Where GetVariable is the data entered into the GET variable
- and SearchString is the data you enter into the search
- string field.
-
- Error Message: - Message to be displayed on the line above
- the bottom window border for the current window when invalid
- input is entered.
- Page: 74
- ADDITIONAL ITEMS MENU - VALID - Field Required
-
- The "Field Required" valid function can be attached to a GET
- variable of any data type. If the GET variable is EMPTY()
- the error message is displayed on the line above the bottom
- window border and the cursor will not proceed to the next
- GET field. This screen looks like this.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process ╔════════╡TEST╞═══════╗ ║
- ║█Edit Ele╔═════════════════════════════════════║ Pick List Validate ║════════╝
- ╚═════════║ Comment: ██████████████████████║ Check Character(s) ║░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIALOG ═════════════╡Record: 1║█Field Required██████║░░░░░░░░░
- ░░░░░░░░░░║ ║ Displ╔═══════════════════════════════════════════╗ ║░░░░░░░░░
- ░░░░░░░░░░╚════║ █████║ The GET is Not Allowed to be EMPTY(), if ║e ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhan║ it is then the Error Message You Enter ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ Here Will be Displayed. ║ld ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET v║ ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Pictu║ Error Message: ██████████████████████████ ║═══╝░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi╚═══════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initialize to: ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════════════════════════════════════════╗░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █Valid█ Append Edit Help Delete ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════════════════════════════════════════╝░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- This valid simply forces the GET field to be non-blank.
-
- Only one field needs to be filled in to set up this
- validation.
-
- Error Message: - Enter the error message to display when an
- attempt is made to cursor past the GET field while it is
- empty.
- Page: 75
- ADDITIONAL ITEMS MENU - VALID - Duplicate Check
-
- The "Duplicate Check" valid function attempts an indexed
- lookup in a database to determine if the value entered into
- the GET will create a duplicate key value. If ADDing a new
- record the value of the GET must not currently exist in the
- database. If CHANGing a record the value of the GET must
- not exist in the database _except_ for the current database
- record. Enter the following to have BUILDER create the
- source code needed for a duplicate check:
-
- Note that before the "Duplicate Check" can be used in your
- program the database will need to be created and opened as
- will the index files. You may also want to create a file
- maintenance routine for the checked database. See the "Edit
- Databases USEd" and "Modify Create Structure" under the
- "Files" main menu option for more information on creating
- and opening database and index files.
-
- There are six fields to be filled in for BUILDER to have the
- information to create the "Duplicate Check" valid. They
- look like the following screen sample.
-
-
- INSERT SCREEN BLDR031.SCR
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Add/Chg Var: - The name of a character variable that will
- contain the value "A" when ADDing a record or "C" when
- CHANGing a record. Leave blank for GEN_MAINTs and
- REL_MAINTs and BUILDER will enter the variable needed when
- the code is generated.
-
- File Alias: - This field is required but entry is not
- checked. If you try to bypass this field a list of .DBFs in
- the current directory will be presented for selection.
- Enter the alias name of the database in which to verify the
- Page: 76
-
- GET entry. Almost always you will enter the alias name
- where the GET data originated.
-
- Index Order: - This field is also required. Enter the index
- order number to use to do an indexed search for the GET
- input. Assistance with entry is available if there are
- index entries for the database entered in the previous
- field. The text "F10-Index List" will be displayed on the
- bottom of the window when a list is available.
-
- Key Expression to SEEK for Duplicate Check: - Enter any
- valid Clipper expression to do the indexed search. The GET
- variable should be used somewhere in this expression.
-
- Error Message: - The error message displayed if an attempt
- is made to enter a duplicate key value into the GET field.
-
- Required? (Y/N) - Enter "Y" if the GET cannot be blank, or
- "N" if blank value is acceptable. If the GET is blank,
- duplicate checking is not performed.
- Page: 77
- ADDITIONAL ITEMS MENU - VALID - In a File Validate
-
- This valid function does essentially the same thing as the
- "Pick List Validate", it only allows input into a GET if the
- data keyed is located in a look-up database. The difference
- with "In a File Validate" is instead of helping with a
- picklist on erroneous input, it simply presents an error
- message.
-
- Note that before the "In a File Validate" can be used in
- your program the database will need to be created and opened
- as will the index files. You may also want to create a file
- maintenance routine for the checked database. See the "Edit
- Databases USEd" and "Modify Create Structure" under the
- "Files" main menu option for more information on creating
- and opening database and index files.
-
- There are four fields to be filled in for BUILDER to have
- the information to create the "In a File Validate", They
- look like this screen.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process ╔════════╡TEST╞═══════╗ ║
- ║█Edit Ele╔═════════════════════════════════════║ Pick List Validate ║════════╝
- ╚═════════║ Comment: ██████████████████████║ Check Character(s) ║░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIALOG ═════════════╡Record: 1║ Field Required ║░░░░░░░░░
- ░░░░░░░░░░║ ║ Display Text: ║ Duplicate Check ║░░░░░░░░░
- ░░░░░░░░░░╚════║ ███████████████████████████████║█In a File Validate██║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhan╔═══════════════════════════════════════════╗ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ If GET Entry is Not FOUND() in a File then║ld ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET v║ Do Not Allow the Entry and Present the ║ ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Pictu║ Error Message. ║═══╝░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ File Alias: ████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ Index Order: █0 ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ Error Message: ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════║ █████████████████████████████████████████ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ █V║ Required? █ (Y/N) ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════║ ║░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░╚═══════════════════════════════════════════╝░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- File Alias: - This field is required but entry is not
- checked. If you try to bypass this field a list of .DBFs in
- the current directory will be presented for selection.
- Enter the alias name of the database in which to verify the
- GET entry.
-
- Index Order: - This field is also required. Enter the index
- order number to use to do an indexed search for the GET
- input. Assistance with entry is available if there are
- index entries for the database entered in the previous
- field. The text "F10-Index List" will be displayed on the
- bottom of the window when a list is available.
-
- Page: 78
-
- Error Message: - If the data keyed into the GET is not found
- in the look-up database the message entered into this field
- will be displayed on the bottom line of your application
- window.
-
- Required? - If this GET can be blank then enter "N"-No it is
- not required. Enter "Y" if it cannot be blank.
- Page: 79
- ADDITIONAL ITEMS MENU - VALID - Generic Valid
-
- The "Generic Valid" validates the GET input based a logical
- expression you enter. You may use any legitimate Clipper
- expression that returns a logical value, you may use .AND.,
- .OR., .NOT., and call functions (including your own UDFs) in
- this expression.
-
- There are three fields to be filled in for BUILDER to have
- the information needed to create the "Generic Valid", They
- look like this screen sample.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process ╔════════╡TEST╞═══════╗ ║
- ║█Edit Ele╔═════════════════════════════════════║ Pick List Validate ║════════╝
- ╚═════════║ Comment: ██████████████████████║ Check Character(s) ║░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIALOG ═════════════╡Record: 1║ Field Required ║░░░░░░░░░
- ░░░░░░░░░░║ ║ Display Text: ║ Duplicate Check ║░░░░░░░░░
- ░░░░░░░░░░╚════║ ███████████████████████████████║ In a File Validate ║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhanced Color?: N (Y/N) ║█Generic Valid███████║░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ╔════════════════════════════════════════════════╗░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET v║ The GET is Allowed if the Logical Expr ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ Pictu║ Evaluates to .T., Otherwise the Error ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ Message Will be displayed. ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initi║ Logical Expression: ██████████████████████████ ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ █████║ Error Message: ██████████████████████████ ║░░░░░░░░
- ░░░░░░░░░░░░░░░╔══════║ Required Field: N ║░░░░░░░░
- ░░░░░░░░░░░░░░░║ █V║ ║░░░░░░░░
- ░░░░░░░░░░░░░░░╚══════╚════════════════════════════════════════════════╝░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- Logical Expression: - As stated above, this is any valid
- Clipper expression that returns a logical value. If the
- result of this expression is false (.F.) the error message
- will be displayed and the cursor will not be able to proceed
- to the next GET. If the expression returns true (.T.) then
- the cursor will proceed to the following GET.
-
- Error Message: - The message to display if the logical
- expression returns a value of false (.F.).
-
- Required Field: - If this GET can be blank then enter "N"-No
- it is not required. Enter "Y" if it cannot be blank.
- Page: 80
- ADDITIONAL ITEMS MENU - VALID - Right Justify Field
-
- The "Right Justify Field" Valid function doesn't actually
- 'validate' the GET var, it simply right justifies the GET
- data . The GET variable must be a character data type to
- use this function. The entry window appears similar to the
- following screen.
-
-
- Change Window █Add Window█ Files Options Colors Mode About Exit
- ║ ╔════════════╗ Aeolus Software ║
- ║ ║ Menu ║t Builder 2.2 Application ║
- ╔══════════════║ Pick List ║══════════════════════════════════════════════════╗
- ║ █Maint║█Dialog█████║ Process ╔════════╡TEST╞═══════╗
- ╚══════════════║ Fi╔═════════════════════════════════════║ Pick List Validate ║
- ░░░░░░░░░░░░░░░║ Co║ Comment: ██████████████████████║ Check Character(s) ║
- ░░░░░░░░░░░░░░░╚═══║ Mes╔═ DIALOG ═════════════╡Record: 1║ Field Required ║
- ░░░░░░░░░░░░░░░░░░░║ ║ Display Text: ║ Duplicate Check ║
- ░░░░░░░░░░░░░░░░░░░╚════║ ███████████████████████████████║ In a File Validate ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Enhanced Color?: N (Y/N) ║ Generic Valid ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ ║█Right Justify Field█║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ GET v╔═══════════════════════════════════════════╗ ║
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Pictu║ The GET Value Will Be Right Justified and ║═══╝
- ░░░░░░░░░░░░░░░░░░░░░░░░║ █████║ Filled With the Fill Character Entered. ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initi║ May be Used Only With Character Fields! ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ Initi║ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ █████║ Fill Character: █ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╔══════║ Use this VALID? █ (Y/N) ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░║ █V║ ║░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░╚══════╚═══════════════════════════════════════════╝░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ Enter VALID Information ▓ Ctrl+PgDn-Delete ▓ ESC-Exit ▓
-
-
- Fill Character: - Enter the fill character when right
- justifying the variable. Usually space or zero. For
- example if the fill character is space and the GET variable
- entered looks like
- "12 ", using the "Right Justify Field" Valid function
- would cause it to look like " 12". Using a zero as the
- fill character would change the GET variable from "12 "
- to "000012".
-
- Use this VALID? - Enter Y to use this Valid function or N
- not to use it.
- Page: 81
- ADDITIONAL ITEMS MENU - VALID - Comment Only
-
- The "Comment Only" option is useful when you will be writing
- a custom valid function and want to leave yourself messages
- in the source code. Or just need to leave a unique note
- about this particular GET variable. There is only one field
- in the entry window for this option.
-
- Field Comment: - Enter comment text. Your comment will be
- put in the generated source code following the @...GET
- command.
- Page: 82
- ADDITIONAL ITEMS MENU - IMPORT
-
- Select the "Import" option for the "Additional Items" menu
- to add elements to a dialog or file-maintenance window using
- the fields of a .DBF database or the BUILDER data
- dictionary.
-
- Selecting "Import" will first present a menu to select
- between a data dictionary for .DBF import. Then a list box
- of available .DBF databases for the selection is given. If
- no databases exist in the default directory an error message
- is presented. The "Create/Modify Structure" BUILDER menu
- option will allow you to create .DBF database structures if
- needed.
-
-
- Select a database from the list box using the up and down
- arrow keys and the page up and page down keys to move the
- highlight pointer to the desired database. Once selected a
- list box is presented with a list of all the fields in the
- selected database. Tag each of the fields you would like to
- append into the dialog or file-maintenance window to which
- you are adding.
-
- Use the up and down and the page up and page down keys to
- move the highlight pointer. Press "T" to toggle a field as
- tagged/untagged. Press "A" to tag all the fields or "U" to
- untag all the fields. A field is tagged when it is
- surrounded on either side by 'baby double parenthesis'.
-
- Import field tag screen sample.
-
-
- █Change Window█ Add Window Files Options Colors Mode About Exit
- ╔═══════════════╗ Aeolus Software ║
- ║ Move Window ║ Test Builder 2.2 Application ║
- ║ Size Window ║══════════════════════════════════════════════════════════════╗
- ║ Move Elements ║ance█ Process Reports ║
- ║█Edit Ele╔══════════════════════════════════════════════╗═════════════════════╝
- ╚═════════║ Comment: ██████████████████████████████ ║░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░║ Mes╔═ DIALOG ════════╔═════════════════════╗══╗░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░║ ║ Display Text: ║█PRDCT_NBR██C██10██0█║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░╚════║ ████████████████║ SERL_NBR C 12 0 ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Enhanced Color?:║ CSTMR_NBR C 5 0 ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ║ SYSTEM_ID C 5 0 ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ GET var: ███████║ QUANTITY N 3 0 ║ ║░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Picture: ║ CATEGORY C 4 0 ║═══╗░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████║ COST N 10 2 ║DBF║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initialize?: N (║ ASSET_NBR N 4 0 ║BF ║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Initialize to: ║ ASSET_IDNO N 4 0 ║ ║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ ████████████████╚═════════════════════╝ ║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╔═══════════════════║ from Data║ ║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░║ Valid █Append█║ from .DBF║ ║░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░╚═══════════════════╚══════════╚════════════╝░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ▓ PgUp/PgDn-Scroll ▓ T-Tag Toggle ▓ A/U-Tag/Untag All ▓ ESC-Exit ▓
-
-
- Press ESC when all the desired fields to be added have been
- Page: 83
-
- tagged. They will then be added as window elements. The
- field name will entered in both the "Display Text" and the
- "GET var" fields. The field size and type will also be
- entered where applicable.
- Page: 84
- ADDITIONAL ITEMS MENU - EDIT HELP
-
- The "Edit Help" menu option, when selected from the
- "Additional Items" menu, creates a detail help screen for
- the current GET variable in the current prototype window.
- Each GET variable may have its own help screen. This help
- screen will be accessible by the user of your application
- when the current window is in use and their cursor is
- located in the GET variable.
-
- Enter text into the help screen window as you would like it
- to appear for the users of your application. Use the arrow
- keys to navigate inside the window. The text will word wrap
- at the right border. Page Up/Down will scroll one screenful
- of text backward and forward. You will be limited to as
- many lines of text as the "Options" maximum help lines
- setting allows. This limitation can be changed and is
- located under the "Options" main menu selection.
-
- Press Ctrl+W to save a help screen or ESC to abandon the
- changes.
-
- Often many help screens in a system will be identical, or
- very nearly identical. Press the F10 key to present a
- picklist of all the help screens. Use the Up/Down and Page
- Up/Page Down keys to move the highlight pointer. Press
- ENTER to copy the highlighted help screen into the current
- help screen, the copied help data will always be
-
- appended to the end of text in the current help window.
- Press ESC to abandon the help screen copy.
- Page: 85
- ADDITIONAL ITEMS MENU - DELETE
-
- When selected a confirmation window will be presented.
- Press Y to delete all the elements in the current window,
- this will effectively delete the window from the application
- prototype. Press N or ESC and no delete will occur and
- control will be returned to the "Additional Items" menu.
- Page: 86
- CROSSHAIRS
-
- The crosshairs are simply a red vertical line and a red
- horizontal line displayed on the screen. The crosshairs are
- only visible during active crosshair operation, they will
- not be displayed when not in use. They are used to mark a
- spot on the screen you want to remember. For example, if
- you want to construct many windows in the exact same
- location. You could set the crosshairs to the desired
- location and they would retain that position until you exit
- the BUILDER program or move them. Then when you finish each
- of the many windows, press the crosshair key to see if the
- window lines up to your crosshair location. Use the BUILDER
- "Move Window" feature to move the window until it
- corresponds with the crosshairs.
-
- Crosshair operation is simple and straightforward, these
- keys are available during crosshair use:
-
- Alt+R - will activate the crosshair anytime during BUILDER
- program execution.
-
- Up/Down Arrows - will move the horizontal crosshair up/down
- one screen row.
-
- Ctrl + PgUp/PgDn - will move the horizontal crosshair to the
- top-most/bottommost screen row.
-
- Right/Left Arrows - will move the vertical crosshair
- right/left one screen column.
-
- TAB/Back TAB - will move the vertical crosshair right/left
- ten screen columns.
-
- Ctrl + Right/Left Arrows - will move the vertical crosshair
- to the rightmost/leftmost screen column.
-
- ESC - will exit the crosshair routine and return to the
- BUILDER function before the crosshair was activated.
- Page: 87
- F1 HELP SYSTEM
-
- There are two, yes two, help systems with respect to
- BUILDER. One is the F1 help system used by your application
- and the other is the F3 help system that allows you to get
- context sensitive help when executing the BUILDER or BREPORT
- programs.
-
- This section deals with the former, the help system
- incorporated into your applications.
-
- When you create a BUILDER application prototype, one of the
- first questions you must answer is if you would like a help
- system incorporated into your application. If you answer
- yes, then the F1 key will activate a context sensitive help
- system in your application. If you answer no, then the help
- system source code will not be created and the F1 key won't
- do anything.
-
- Regardless of whether you say yes or no to a help system for
- your application, the file HELP.DBF/.DBT is created and
- seeded with general help screens. You will also be able to
- enter help additional screens in BUILDER if you answered no.
- The reason for this is twofold. One, you might change your
- mind and at a later time include a help system. Two, (and
- more important) when a help system is not being incorpo
- rated, the BUILDER help screens make an excellent place for
- programmers notes. Using the help screens for programmers
- notes is especially useful when several people participate
- in developing an application.
-
- The BUILDER generated help system recognizes seven specific
- access points. Each access point can have two help screens.
- Help screen one being "General" help, and help screen two
- "Detail" help. Six of the seven access point "General" help
- screens are very generic, and are automatically created by
- BUILDER. All other help screens are unique to the
- application and must be created by the programmer,
- application user or both.
-
- The seven help system access points are:
-
- 1. Menus.
- a. General help automatic.
- b. Detail help custom per function.
-
- 2. Dialog Boxes.
- a. General help custom per function.
- b. Detail help custom per GET field.
-
- 3. Picklists.
- a. General help automatic.
-
- Page: 88
-
- b. Detail help custom per function.
-
- 4. File Maintenance Windows (while using it's menu)
- a. General help automatic.
- b. Detail help custom per function.
-
- 5. File Maintenance Windows (while editing the GETs).
- a. General help automatic.
- b. Detail help custom per GET field.
-
- 6. REL_MAINT() execution (while using menu).
- a. General help automatic
- b. Detail help custom per function.
-
- 7. REL_MAINT() execution (while editing GETs).
- a. General help automatic.
- b. Detail help custom per GET field.
-
- 8. TBrowses.
- a. General help automatic.
- b. Detail help custom per function.
-
- Each "General" help screen is a 'how to' screen which
- answers what each available keyboard key will do. Each
- "Detail" help screen is a 'why is it here' screen. For
- example a "Detail" help screen for a system menu should
- describe what each menu prompt is for.
-
- In the above list, each help screen that is "custom per
- function" should answer the question 'What is this window
- for?'. Each help screen that is "custom per GET field"
- should answer the questions "What are the allowable values
- for this field?" and "What does this field do?".
-
-
- Your Quesions on the Help System:
- Q. Where in BUILDER do I edit which type of help screen?
-
- A. If you see the question "Edit Help?" and there is a
- field for the cursor, answering Y-Yes will edit a help
- screen for a 'function'.
-
- If you select "Edit Help" from a menu you will be editing a
- help screen for a 'GET field'.
-
-
- Q. O.K., but there isn't a REL_MAINT() window in BUILDER!
- How do I edit it's help screens?
-
- A. A REL_MAINT() is a converted dialog box. The conversion
- is very simple, but is done by hand. A dialog box "General"
- help screen will be used as a REL_MAINT() menu detail help
-
- Page: 89
-
- screen (6-b in the above list). Dialog box GET field help
- screen will be used as REL_MAINT() GET field detail help
- screens (7-b in the above list). The other two types of
- REL_MAINT() help screens are automatically created by
- BUILDER. See the BUILDER Library Reference Guide for more
- information on the REL_MAINT() function. (Doing this is
- MUCH easier than it sounds)
-
- Q. Can I add/edit help screens in the application program?
- If so how?
-
- A. Yes. There is a field in OPTIONS.DBF (created for every
- BUILDER application) called HELP_EDIT. It is a one byte
- character field and when it contains the value "Y" will
- allow help screens to be edited/added during application
- execution.
-
- If the HELP_EDIT field is NOT equal to "Y" the help system
- will not allow any editing or adding of help screens. Also,
- if the F1 key is pressed and there is no "General" and no
- "Detail" help, a message box is displayed indicating no help
- is available. If the F1 key is pressed and there is only
- "General" or only "Detail" help available, then that screen
- is displayed. If the F1 key is pressed and both "General"
- and "Detail" help are available, the "Detail" help screen is
- displayed and the message "F1-General/Detail Toggle" is
- displayed on the bottom border of the help screen. If both
- help screens are available, pressing the F1 key will switch
- between "General" and "Detail" help screens.
-
- If the HELP_EDIT field is equal to "Y" the help system will
- allow editing and adding of help screens. Whenever the F1
- key is pressed the current help screen is displayed and the
- cursor is positioned at the end of the help text. If no
- help screen is available, the cursor is set in a blank help
- screen. Pressing the F1 key while editing a help screen
- will always toggle between the "General" and "Detail" help
- screens. If any new help screens are added from the
- application, the title will have to be entered into HELP.DBF
- using another means (dBASE for example). Use the arrow keys
- and PgUp/PgDn to position the cursor. Enter help text as
- you would like it to appear. Press Ctrl+W to save a help
- screen or ESC to abandon the changes.
-
- Caution: Pressing ESC will erase all changes to a help
- screen!!
-
-
- Q. What if I don't like one or more of the 'automatic' help
- screens?
-
- A. Each of the 'automatic' help screens can be overridden.
- Page: 90
-
- See the section in this document titled "Default OPTIONS and
- Help" for details on how to substitute your own help screens
- in place of the BUILDER 'automatic' help screens.
-
-
- Q. What if I have many very similar or identical help
- screens?
-
- A. Whenever you are editing a help screen in the BUILDER
- program, the message "F10-Copy" will be displayed on the
- bottom help screen border. Simply press the F10 key to
- present a pick list of all the help screens already entered.
- Use the Up/Down arrows and Page Up/Page Down keys to move
- the highlight pointer. Press ENTER to copy the selected
- help screen into the current help screen. Press ESC to
- abandon the help screen copy.
- Page: 91
- F3 HELP SYSTEM
-
- If you copy a help screen, it will be appended to the end of
- the current help screen.
-
- This is the help system that provides you with information
- about field entry and system operation within the BUILDER
- and BREPORT programs.
-
- If you would like help during BUILDER or BREPORT execution,
- press the F3 key. There is a help screen available almost
- everywhere in the BUILDER and BREPORT programs.
-
- Press PgUp/PgDn to view more text.
-
- Press ESC to exit BUILDER/BREPORT help.
- Page: 92
- DEFAULT OPTIONS AND HELP.
-
- Setting up a personal set of BUILDER defaults:
-
- You may set your own default values for each field in the
- "Options" screen of the BUILDER main menu. That way
- whenever you create a new BUILDER application, your name is
- already entered in the "Name" field etc. Also any custom
- fields you may want to add to OPTIONS.DBF, for example
- printer control string fields, can be automatically
- incorporated into each new BUILDER application. All you
- need to do is put the file OPTIONS.DBF that contains your
- default values and any additional fields in the same
- subdirectory where BUILDER.EXE is located . That's it! Now
- every time you start a new BUILDER application, your
- OPTIONS.DBF will be used instead of BUILDER creating a new
- blank one.
-
- Setting up custom automatic help screens:
-
- You may customize any one or all of the automatic help
- screens. See the section in this manual entitled 'F1 help
- system' for more information on what constitutes an
- automatic help screen. Of the seven help access points, six
- have automatic "General" help screens. When BUILDER is
- executed for the first time in a new subdirectory, one of
- the databases created is HELP.DBF/.DBT. This file contains
- all the help screens that will be used in your application.
- BUILDER automatically seeds this file with six help screens.
- When each record is added, (one for each of the automatic
- help screens), the override file is searched for in the
- current DOS directory. If the override file is found, that
- text is used as the help text for that automatic help
- screen. If the override file was not located in the current
- DOS directory, then BUILDER searches the subdirectory where
- BUILDER.EXE is located, and if the override file is found,
- that text is used as the help text for that automatic help
- screen. If the override file is not found in either of
- these places, then the default automatic help text is used.
-
- The override files MUST have the correct filename for
- BUILDER to 'see' it. Also the file must be placed in the
- proper subdirectory as per the previous paragraph. Help
- override files are simple CR/LF delimited text files. The
- widest record in the text file should not exceed 60
- characters (the width of the help window).
-
- The six possible override filenames are as follows:
-
- MENUGEN.HLP - Menu function "General" help.
- PLSTGEN.HLP - Picklist function "General help".
- FMNTMNU.HLP - File maintenance menu "General" help.
-
- Page: 93
-
- FMNTGEN.HLP - File maintenance GETs "General" help.
- REL_MNU.HLP - Related file maintenance menu "General" help.
- REL_GEN.HLP - Related file maintenance GETs "General" help.
-
- Note that these files are not part of the BUILDER files and
- are not created by BUILDER. They are strictly created by
- BUILDER users who want different help screens than the
- defaults.
- Page: 94
- CONVERTING FROM BUILDER 1.0 OR 2.0
-
- For BUILDER version 1.0 or 2.0 users who want to convert to
- version 2.2. Simply execute BUILDER (version 2.2) in the
- same subdirectory where BUILDER 1.0 or 2.0 created files
- reside. BUILDER 2.2 will automatically detect the older
- version files and display the following message:
-
-
- ****** OLD BUILDER VERSION FILES ******
-
- The files in this subdirectory are from a previous version
- of BUILDER. You may convert them now or exit to DOS. If
- you choose to convert, they will NOT work with the older
- version!
-
- Press C-Convert the files or E-Exit the program
-
- When this message is on the screen, press the C key on the
- keyboard to convert the files. If you're not sure you want
- to make the switch, press the E key and no changes will be
- made.
- Page: 95
- SUGGESTIONS
-
- USE THE 30 BYTE COMMENT FIELD ON EVERY WINDOW YOU CREATE,
- THE PROC MAP AT THE BEGINNING OF EACH GENERATED APPLICATION
- WILL BE MUCH (LET ME REPEAT THAT) *MUCH* MORE READABLE!
-
- ====== When you begin an application, setup the root menu
- and then as soon as possible after that create your
- databases. Next add all the needed databases and indexes to
- the "Databases USEd" list for the application. This will
- make naming variables and creating File Maintenance and
- Dialog windows easier because you can import directly from
- database structures. It is highly advisable to enter ALL
- memory variables into the data dictionary - this is the only
- way Builder can know that it is a memory variable. Not
- entering memory variables into the data dictionary will
- cause the generated source code to contain unscoped memory
- variables in the program.
-
- At this point, decide if you will be using the BUILDER data
- dictionary. If you are going to use it, then initialize the
- data dictionary from either your database list or another
- BUILDER data dictionary. And enter all the dictionary field
- and memory variable defaults for your application.
-
- Again, don't use a .PRG extension on your generated source
- code, you will overwrite something you worked on by hand
- sooner or later. BUILDER attempts to keep you from doing
- this, but it is possible to override.
-
- Cut from .PR1 files and paste into .PRG files to make
- changes to previously generated program source. This is
- made simple by the way BUILDER creates source code. If you
- have a newly updated .PR1 file with code that needs to be
- copied into your .PRG. Use the Proc Map to locate existing
- code and update the window function. This is very easy
- because no matter how many changes you make to any window
- type, what you will be updating are the SAYs and GETs, and
- these will almost always be grouped together. Also, since
- new windows are appended to the end of each source procedure
- section, search keys are provided for easily locating the
- newest windows.
-
- If you are adding new window functions, the task is even
- easier. First update the Proc Map at the beginning of the
- target application's source file. Next locate the end of
- the window type to which you will be adding new functions .
- Use the end markers for this, search for ENDMENU, ENDHAND,
- ENDDLOG, ENDPLST, ENDFMNT, ENDRMNT, or ENDBRWS to locate
- the last function for each window type. Then simply copy in
- the new functions after the last function and before the end
- marker.
-
- Page: 96
-
- There will still be work that you must do by hand. The
- BUILDER is not designed to produce completed applications,
- only the time-consuming (boring?) repetitive tasks.
-
- How to attach a window or string of windows to a SET KEY
- TO... ? You simply create a menu option somewhere called
- "DUMMY" and create the window chain you will call with the
- the SET KEY TO... command. When the code is generated,
- remove the "DUMMY" menu option. Now connect the two windows
- by entering the SET KEY TO... command by hand, and doing any
- testing in the called function.
-
- Make the BUILDER prototype as complete as possible before
- generating code. Show your users the prototype using the
- BDEMO.EXE program (registered users only) and don't code
- anything until the design is finalized. You will be
- happier, they will be happier, and the project will be
- completed sooner. Big design changes after you've been
- working on the code by hand for a week can set a project
- back a long way. On the other hand, adding new windows is
- relatively easy. Try to make screen changes in BUILDER and
- avoid making anything but small screen changes in the code.
-
- Working on the source by hand, steps:
- Step one. Modify any connections first, reroute procs where
- you need them to go, BUILDER can't connect things perfectly.
- Your application may have multiple routes to a single
- window, this is an example of rerouting a window by
- programming by hand. This rerouting is often no more than
- entering a call to the window function in the source code
- file.
-
- Step two. Add any needed code to dialog boxes. I usually
- add a "Hand Code Section" following a dialog box to perform
- small tasks and enter only comments when large amounts of
- logic are needed. I like to enter the larger logic in the
- source file and not in a "Hand Code Section".
-
- Step three. The final step in a BUILDER generated
- application is to add your own logic, this is typically the
- guts of the program. This requires you to develop program
- code from scratch and in a typical BUILDER application
- comprises about 10% of the program. This programming is
- unique to the application and is typically internal logic
- that doesn't require much user interaction.
-
- Step four. Test, test, and test. Done?
-
- New functions and procedures should be added in a separate
- .PRG file. This keeps the proc map clean and your
- procs/funcs are easier to find during debugging. If these
- require access to database fields, remember to pass the
-
- Page: 97
-
- database STATIC arrays to any external functions, also
- remember to # include the header (.ch) that contains the
- database field definitions for your application.
- Page: 98
- APPENDIX A - How to Operate Generic File Maintenance Windows.
-
- When you create a file maintenance window using BUILDER.
- Code will be generated that calls the Generic File
- Maintenance routine in the BUILDER Library.
-
- When initially presented, a file maintenance window will
- display the fields at the CURRENT RECORD LOCATION. A menu
- centered on the top border line of the window will be in
- control. Select "Add", "Change", "Delete", or "Find" from
- the menu by moving the highlight bar over that selection and
- pressing ENTER, press PgUp or PgDn to display the previous
- and next records, or press ESC to exit the file maintenance.
-
- When "Add" is selected the Key fields will be presented in a
- sub-window, enter the complete key data for an "Add"
- afterwhich the cursor will be positioned in the rest of GET
- fields, enter the data. When finished, the prompt "Add
- Record? (Y/N)" will be presented. Answer Y-Yes or N-No to
- the confirmation.
-
- When "Find" is selected the Key field will be presented in a
- sub-window also, however, enter the minimum needed to locate
- the desired record for a "Find" and the record nearest to
- the data entered will be displayed.
-
- If your file maintenance doesn't have any "Key" fields, then
- a "Duplicate Keys" file maintenance routine will be created.
- This will function the same as the "Keyed" file maintenance
- except the Key Fields sub-window will not be available.
-
- If "Change" is selected the cursor is positioned to the non-
- key fields, after field entry the confirmation prompt "Save
- Changes? (Y/N)" is given and the changes will only be saved
- if the user press the "Y" key on the keyboard.
-
- If Delete is selected the confirmation prompt "Delete
- Record? (Y/N)" is presented. The record will only be
- deleted if the user presses the "Y" key on the keyboard.
-
- All results of confirmation prompts are displayed after they
- are completed.
- Page: 99
- APPENDIX B - The Generated Source Code
-
- CODE ORGANIZATION
- The source code generated will contain up to eleven major
- sections. These are:
-
- I Initialization
- II Menus
- III Hand Code
- IV Dialog Boxes
- V Relation Maintenance
- VI TBrowse's
- VII Pick List Boxes
- VIIII File Maintenance Boxes
- IX Index Checking
- X Database and Index File Opens
- XI Help System (Summer '87 only)
-
- I. Initialization.
-
- The initialization section of the program is located at the
- beginning of the generated program and it contains twelve
- simple program sections.
-
- 1. Program and author identification comments.
- 2. Proc map comments.
- 3. #includes and PRIVATE/STATIC memory variable declara
- tions.
- 4. Database field array initialization procedure.
- 5. Some SET ... commands.
- 6. Open the OPTIONS.DBF database.
- 7. Set colors and other defaults from the data in
- OPTIONS.DBF.
- 8. Display desktop and screen header.
- 9. Execute the check index proc.
- 10. Execute the Open databases and indexes proc.
- 11. Execute root menu loop.
- 12. Exit program.
-
- The initialization should be easy to decipher and the
- sections should be readily identifiable, each is commented.
- You should have no difficulty if you want to add your own
- initialization code to what is there.
-
- Commonly you can add fields to OPTIONS.DBF and include your
- own default values in section 6 of Initialization, some of
- this is done automatically by Builder. User added fields to
- OPTIONS.DBf are declared and initialized by Builder.
-
- II. Menus.
-
- After the initialization code, the root and other menus will
- Page: 100
-
- follow, each menu will be in a separate proc called MENUnnn
- where nnn is equal to the window number assigned by BUILDER.
- Note that the root menu will not have a number and the proc
- will simply be called MENU.
-
- Each menu proc is prefixed by a comment box which indicates
- what type of proc called the menu and also includes the
- comment entered from BUILDER.
-
- The color is set, the window is displayed and the menu
- variable is initialized before the loop is started. The
- WINDOW Builder command is called to display the screen
- window.
-
- A message line is displayed. All menus called directly by
- the root menu will contain calls to TTLKEYON and TTLKEYOFF,
- these procs enable left and right scrolling for drop down
- menuing systems.
-
- For Summer '87 style code:
- The menu prompts are displayed and the MENU TO ... command
- is executed. A CASE statement follows which reacts to each
- menu option that has a window attached to it. The ESC key
- is trapped in the CASE to exit the menu.
-
- For Clipper 5.x style code:
- The menu prompts are displayed using the Builder WINPROMPT
- command with a code block parameter to indicate what to
- execute for each menu option. The BUILDER Menu() function
- is then called to execute the menu.
-
- If you included an F1-Help system in your BUILDERed
- application there will be a VARPUSH() and a VARPOP() on proc
- entry and exit points. This tells the Help System what help
- screen to display.
-
- After the menu the window and the screen area used by the
- menu is cleared and the proc is concluded.
-
- Example menu program code:
- ************************************************************
- *******************
- ** CALLED BY: Selection << File Maintenance >> in Proc:
- MENU002 **
- ** Comment: File Maintenance Menu
- **
- ************************************************************
- *******************
- PROCEDURE Menu004()
- LOCAL aMenuArray := {}
- LOCAL nOpt2
-
-
- Page: 101
-
- SETCOLOR(Var(MENU_CLR_))
- @ 10,20,13,34 WINDOW STYLE "--" NOSHADOW
- VarPush("MENU004")
-
- nOpt2=0
- SetMsgLin("_ Up/Down, Left/Right-Move Pointer _ ENTER-
- Select _ ESC-Exit _")
- SETCOLOR(Var(MENU_CLR_))
-
- @ 01,01 WINPROMPT " Description " TO aMenuArray EXECUTE
- Hand025()
- @ 02,01 WINPROMPT " Sample " TO aMenuArray EXECUTE
- Hand104()
-
- nOpt2 := Menu(aMenuArray,nOpt2)
-
- VarPop()
- WINDOW REMOVE
-
- III. Hand Code.
-
- Hand Code functions are included in the source code only if
- at least one Hand Code Section is defined in the BUILDER
- prototype.
-
- Following the menus, will be all the functions containing
- the Hand Code you have entered. Each will consist of a
- comment indicating what function called the Hand Code, and
- the comment for the current function. There will be a
- function declaration followed by the Hand Code entered for
- that function.
-
- IV. Dialog Boxes.
-
- Dialog procedures are included in the source code only if at
- least one dialog box is defined in the BUILDER prototype.
-
- The dialog box procs follow the hand code. Dialog box logic
- can take one of three forms, depending on whether any GETs
- are entered for that dialog. If GETs are available for the
- dialog box a READ command is executed, otherwise a WAITKEY()
- is put in the DO WHILE loop. The WAITKEY() and DO WHILE
- loop are omitted, however, if the dialog box has no GETs and
- is followed by a "Hand Coded Section".
-
- Each dialog box begins with a comment box that indicates
- what type of proc called the dialog and also includes the
- comment entered from BUILDER.
-
- First the Builder WINDOW command places an empty window on
- the screen.
-
-
- Page: 102
-
- The color is set and the SAYs for the dialog are executed.
-
- After the SAYs the dialog variables, if any, are initial
- ized. Notice that the initialization data from BUILDER is
- not checked and it is possible to create un-compilable
- source in this area.
-
- Inside the DO WHILE loop the dialog GETs, if any, are
- executed. Also inside the DO WHILE is a SetMsgLin() function
- to display the message line information you entered in
- BUILDER.
-
- The GETs will call any of the BUILDER Library VALIDs you
- selected when you created the dialog.
-
- The ESC key is trapped to exit the dialog.
-
- If you included an F1-Help system in your BUILDERed
- application there will be a VARPUSH() and a VARPOP() on the
- entry and exit points. This tells the Help System what help
- screen to display.
-
- Dialog proc example code.
- ************************************************************
- *******************
- ** CALLED BY: Selection << Bounded by Option >> in Proc:
- MENU003 **
- ** Comment: Bounded by Picklist (By State)
- **
- ************************************************************
- *******************
- PROCEDURE Dlog028()
- LOCAL x,GetList := {},mState
-
- VarPush("DLOG028")
-
- SETCOLOR(Var(WNDW_CLR_))
- @ 13,24,19,67 WINDOW STYLE "3+"
-
- SETCOLOR(Var(WMSG_CLR_))
- @ 01,02 WINSAY "The Following Picklist Will Only Display"
- @ 02,02 WINSAY "Records From the State You Select."
- SETCOLOR(Var(WNDW_CLR_))
- @ 04,02 WINSAY "State Code:"
-
- mState := Space(02)
-
- DO WHILE .T.
- SetMsgLin("_ Enter State Code _ ESC-Exit _")
-
- @ 04,14 WINGET mState PICTURE "!!" VALIDBLOCK ;
- {|| ;
-
- Page: 103
-
- GenVld(In_Usa(GETACTIVE():varGet()), ;
- "Enter a Valid U.S. State Code", ;
- WinBott()-1,WinLeft()+2,WinRight()-
- 2,.T.,Var(WERR_CLR_))}
-
- ReadGets(@GetList)
-
- IF LASTKEY() == K_ESC
- EXIT
- ENDIF
-
- ** You may want to do some validations here **
- ** before executing the next proc. **
- Hand056(mState)
- ENDDO
-
- VarPop()
- WINDOW REMOVE
-
- V. Relation Maintenace.
-
- One bad thing about Builder Rel_Maint()'s is each will be
- generated with between one and five PRIVATE variables. A
- VarPush() is entered in source where a Help system has been
- requested. This is followed by creation of the window. The
- Builder WINSAY command displays data in the window.
-
- The database to be edited is then selected as the default
- work ared and the index order is established.
-
- Next, the relation data for adding new records is set. The
- database is positioned, and finally the Rel_Maint() function
- is called. The Rel_Maint() function makes calls to the
- function of WINGETs that follows each RMNT procedure created
- by Builder.
-
- In the GET function, the database relation fields are set
- and the WINGETs are performed. If Rel_Maint() is executing
- the GET function for and Add or Change condition, a READ is
- performed.
-
- Back in the RMNT procedure, after the Rel_Maint() call, a
- VarPop() sets the Help array to point to the previous
- window, the window is removed from the screen and the
- procedure is exited.
-
- ************************************************************
- *******************
- ** CALLED BY: Pick List Window: PLST061 Rel_Maint()
- Sample **
- ** Comment: Rel_Maint() Sample (Maint)
- **
-
- Page: 104
-
- ************************************************************
- *******************
- PROCEDURE Rmnt062()
- LOCAL xBounds
- PRIVATE cRelKey1
- VarPush("RMNT062")
-
- SETCOLOR(Var(WNDW_CLR_))
- @ 05,00,12,29 WINDOW STYLE "3+"
-
- @ 02,02 WINSAY "First"
- @ 03,03 WINSAY "Last"
- @ 05,02 WINSAY "Phone"
-
- DBSELECTAREA("Friends")
- Friends->(DBSETORDER(1))
-
- // Set Relation Key Fields
- cRelKey1 := Cities->City
-
- Friends->(DBSEEK(Cities->City,.F.))
-
- xBounds := Cities->City
-
- Rel_Maint(WinTop(),WinLeft(),WinBott(),WinRight(),"062",{||x
- Bounds==Friends->City}, ;
- "FRIENDS",aFriends,2,"ACD")
-
- VarPop()
- WINDOW REMOVE
-
- FUNCTION Get062(cG_Func)
- LOCAL x,GetList := {}
-
- // Set Relation Key Fields
- BCITY := cRelKey1
-
- @ 02,08 WINGET BFNAME PICTURE "!xxxxxxxxxxxxx" VALIDBLOCK
- ;
- {|| ;
- Req("First Name Required", ;
- WinBott()-1,WinLeft()+2,WinRight()-
- 2,Var(WERR_CLR_))}
- @ 03,08 WINGET BLNAME PICTURE "!xxxxxxxxxxxxxxxxxxx"
- @ 05,08 WINGET BPHONE PICTURE "@R (999) 999-9999"
-
- IF cG_Func$"AC"
- ReadGets(@GetList)
- ENDIF
- RETURN(NIL)
-
- VI. TBrowse.
-
- Page: 105
-
- The Builder TBrowse procedures initialize a Clipper TBrowse
- object, adding a two dimensional 'dictionary' array of
- additional items to the :cargo instance variable. Likewise
- each column object is initialized with a similar 'dictio
- nary' added to its :cargo instance variable. These
- 'dictionary' arrays allow add functionality to these
- objects. The controls are all entered by Builder (except
- the "BNDKEYS" and "ORDEXCPT" values) and are used by the
- Builder BrowseDb() function.
-
- In the source code, first a number of local variables are
- declared to hold the window dimensions, sundry items,
- objects, dictionary arrays, and saved system values.
-
- If a Help system has been incorporated into your system, a
- VarPush() is executed to tell Help what to display.
-
- The window coordinate variables are initialized.
-
- The database to be browsed is selectec as the default work
- area and the index order is established.
-
- The browse object dictionary array is initialized, followed
- by initializing a TBrowse object.
-
- Each column in the TBrowse is initialized by first setting
- its dictionary array and then initializing the column
- object. The column object is then added to the browse
- object. This is repeated for every column on the browse.
-
- After the browse object is initialized, a window is
- displayed on the screen.
-
- Then a DO WHILE loop is executed in which a message line is
- displayed, the browse ojbect's mouse controls are set up,
- and the browse is performed. If the browse function returns
- a logical FALSE (ESC key pressed) the loop is exited and the
- procedure terminated. If the browse function returns a
- logical TRUE (Ctrl+ENTER key pressed), the browse object's
- mouse controls are turned off and the next window procedure
- is executed.
-
- ************************************************************
- *******************
- ** CALLED BY: Hand Code: HAND149 Position TBrowse
- Database **
- ** Comment: TBrowse Demo
- **
- ************************************************************
- *******************
- PROCEDURE Brws146()
- LOCAL nBr1,nBc1,nBr2,nBc2
-
- Page: 106
-
- LOCAL x,xBound,nDisplayRow
- LOCAL oBrwObj,oColObj
- LOCAL aBrwCtrls := {},aColCtrls := {}
- LOCAL cOldColor := SETCOLOR(Var(BRWS_CLR_))
- LOCAL cDbStatus
-
- VarPush("BRWS146")
-
- nBr1 := 07
- nBc1 := 12
- nBr2 := nBr1+12
- nBc2 := nBc1+55
-
- DBSELECTAREA("Cities")
- Cities->(DBSETORDER(2))
-
- // Add Browse Controls to a Control Dictionary
- DictPut(aBrwCtrls,"FREEZE",.T.) // Freeze Control
- DictPut(aBrwCtrls,"DELETE",.T.) // Delete/Recover
- Control
- DictPut(aBrwCtrls,"AWIDTH",.T.) // Adjust Column
- Width Control
- DictPut(aBrwCtrls,"CHGORD",.T.) // Change Index
- Order Control
- DictPut(aBrwCtrls,"IDXSRC",.T.) // Index Search
- Control
- DictPut(aBrwCtrls,"APPEND",.F.) // Append Records
- Control
- DictPut(aBrwCtrls,"APPVAL",.F.) // Append Mode
- Variable
- DictPut(aBrwCtrls,"RECNBR",.T.) // Record Number
- Visible @Start
- DictPut(aBrwCtrls,"RECTGL",.T.) // Record Number
- Column Toggle Control
- DictPut(aBrwCtrls,"DELREC",.F.) // Delete Database
- Record Control
- DictPut(aBrwCtrls,"BOUNDS",NIL) // Bounded by Block
- DictPut(aBrwCtrls,"HGLTBAR",NIL) // Highlight Bar
- Color Pair
- DictPut(aBrwCtrls,"BNDPFX",NIL) // Bounded by Prefix
- DictPut(aBrwCtrls,"BNDKEYS",NIL) // Bounded by Key
- Init
- DictPut(aBrwCtrls,"ORDEXCPT",{}) // Idx Orders to X
- from List
-
- // Initialize the TBrowse Object
- oBrwObj := TBrowseDb(nBr1+1,nBc1+1,nBr2-2,nBc2-1)
- oBrwObj:cargo := aBrwCtrls
- oBrwObj:goBottomBlock := {||AbGoBottom(oBrwObj)}
- oBrwObj:goTopBlock := {||AbGoTop(oBrwObj)}
- oBrwObj:skipBlock := {|x| AbTBSkip(x,oBrwObj)}
- oBrwObj:colorSpec :=
-
- Page: 107
-
- Var(BRWS_CLR_)+","+Var(BRWS_HL1_)+","+Var(BRWS_HL2_)
- oBrwObj:headSep := "---"
- oBrwObj:colSep := " | "
- oBrwObj:footSep := "---"
-
- // Add Column Objects to the TBrowse Object
- aColCtrls := {}
- DictPut(aColCtrls,"EDITABLE",.F.)
- DictPut(aColCtrls,"PICTURE",NIL)
- DictPut(aColCtrls,"COLNBR",1)
- DictPut(aColCtrls,"VALID",NIL)
- DictPut(aColCtrls,"EXECBLK",NIL)
- DictPut(aColCtrls,"GETBLK",FIELDBLOCK("CITY"))
- oColObj := TBColumnNew("City", ;
- {||Cities->City})
- oColObj:cargo := aColCtrls
- oBrwObj:addColumn(oColObj)
-
- aColCtrls := {}
- DictPut(aColCtrls,"EDITABLE",.F.)
- DictPut(aColCtrls,"PICTURE",NIL)
- DictPut(aColCtrls,"COLNBR",2)
- DictPut(aColCtrls,"VALID",NIL)
- DictPut(aColCtrls,"EXECBLK",NIL)
- DictPut(aColCtrls,"GETBLK",FIELDBLOCK("STATE"))
- oColObj := TBColumnNew("State", ;
- {||Cities->State})
- oColObj:cargo := aColCtrls
- oBrwObj:addColumn(oColObj)
-
- // Put a Window on the Screen
- @ nBr1,nBc1,nBr2,nBc2 WINDOW STYLE "3+"
-
- // Add Some Other Display Items
- nDisplayRow := oBrwObj:nBottom - oBrwObj:rowCount - 1
-
- // Execute the Browse
- DO WHILE .T.
- SetMsgLin("_ Arrows/PgUp/PgDn-Move _ ENTER-Edit _
- Alt+M-Menu _ Ctrl+ENTER-Next _ ESC-Exit _")
- BrwMouse(nBr1,nBc1,nBr2,nBc2,oBrwObj)
- IF !BrowseDb(oBrwObj,,4)
- EXIT
- ENDIF
- cDbStatus := DbState()
- BrwMouse() // Mouse
- Pads Off
- Rmnt145()
- DbState( cDbStatus )
- ENDDO
- BrwMouse() // Mouse Pads
- Off
-
- Page: 108
-
- SETCOLOR(cOldColor)
- WINDOW REMOVE // Remove Window from Screen
- VarPop()
-
- VII. Pick List Boxes.
-
- A typical BUILDER picklist procedure looks like the
- following:
-
- ************************************************************
- *******************
- ** CALLED BY: Hand Code: HAND102 Picklist No Options
- Setup **
- ** Comment: No Options Picklist
- **
- ************************************************************
- *******************
- PROCEDURE Plst027()
- LOCAL nPr1,nPc1,nPr2,nPc2,cDisp
-
- nPr1 := 11
- nPc1 := 22
- nPr2 := nPr1+09
- nPc2 := nPc1+44
-
- VarPush("PLST027")
-
- SETCOLOR(Var(WNDW_CLR_))
-
- cDisp := 'Transform(Zip,"@R 99999 99999")+" "+State+"
- "+City'
-
- Plist(nPr1,nPc1,nPr2,nPc2,"CITIES",1,cDisp,.F.,"","",{||Hand
- 032()})
-
- *#SNAPCODE HAND032()
-
- VarPop()
-
- This one creates a window at row 11 column 22 to row 20
- column 66. It scrolls the 'CITIES database displaying the
- fields ZIP, STATE, and CITY. The fields will be displayed
- organized according to index order one (1). The QWERTY
- scroll is disabled. QWERTY field blank. Uses default
- reverse color. The function 'HAND032' is called when the
- ENTER key is pressed.
-
- Picklists seem to be the area of BUILDER most people have
- difficulty understanding. Picklists are difficult to learn,
- but once mastered, very quick to setup. The BOUNDED BY and
- QWERTY SCROLL features seem to cause the most problems.
- Take your time and study how each parameter works, the call
- Page: 109
-
- to the picklist function may be only one line of code but
- setup is very exacting.
-
- The #SNAPCODE HAND039 is to tell SNAP! how to proceed in
- documenting the program flow. If you do not know about the
- SNAP! program GET A COPY. It is a Shareware program written
- by an ASP member and will produce more system level
- documentation than any MIS manager would ever dare ask for.
- Highly recommended.
-
- VIII. File Maintenance Boxes.
-
- File maintenance procedures are included in the source code
- only if at least one file maintenance box is defined to the
- BUILDER prototype. These are arranged to call the generic
- file maintenance procedure, see the documentation on the
- GEN_MAINT() func for further details.
-
- IX. Index Checking.
- ChkNtxs()
-
- The procedure CHK_NTXS is created to verify the existence of
- all indexes (entered in Files/Edit Databases USEd), if an
- index exists nothing happens, if it does not it is created.
- This eliminates the need to put 'Index' or 'Reindex' menu
- options on application menus. I have found the Clipper .NTX
- structure so solid that periodic reindexing is not needed.
-
- X. Database and Index File Opens.
-
- Next in the source code is the procedure OpenFiles() which
- opens all application database and index files.
-
- XI. Help System.
-
- If you incorporated a help system into your application the
- procedure HELP will be the last in the source code file.
- This procedure handles all F1-Help logic. See the chapter
- on the Help System for more information. This is added to
- Summer '87 style source code only, Clipper 5.x style source
- is able to use a library function for the help system.
- Page: 110
- APPENDIX C - Files Created by BUILDER
-
- OPTIONS.DBF
- HELP.DBF HELP.DBT, HELP1.NTX
- FILES.BLD FILES1.BLX, FILES2.BLX
- WINDOWS.BLD WINDOWS1.BLX, WINDOWS2.BLX, WINDOWS3.BLX
- WINDOWS4.BLX
- ELEMENTS.BLD ELEMENT1.BLX, ELEMENT2.BLX, ELEMENT3.BLX
- PICKLIST.BLD PICKLIST.BLX
- VALIDS.BLD VALIDS1.BLX
- HANDCODE.BLD HANDCODE.BLT, HANDCOD1.BLX
- BDCTFIL.BLD BDCTFIL1.BLX
- BDCTFLD.BLD BDCTFLD.BLT, BDCTFLD1.BLX, BDCTFLD2.BLX,
- BDCTFLD3.BLX
- BDCTVLD.BLD BDCTVLD1.BLX
-
- The .BLD files are created by BUILDER.EXE in standard
- Clipper .DBF format that you could USE in any xBASE system.
- The .BLT files are Clipper compatible .DBT files. The .BLX
- files are standard Clipper .NTX format files that you could
- use in Clipper. The .BL? extension files are intended to be
- used only by BUILDER and have no use to the finished
- application.
-
- A duplicate of each .BLD file will be created by BUILDER on
- each entry into the BUILDER program. They will be copied to
- the same filenames but with the extension .BKD. In the
- event of a power failure or a similar computer tragedy, your
- last BUILDER session is backed up. Note that OPTIONS.DBF,
- HELP.DBF, and HELP.DBT are not backed up at all.
-
- OPTIONS.DBF - This file is a one record database that
- contains all the defaults needed by the application. After
- this file is created you can add fields of your own if you
- require additional default values for your application,
- however, be sure you don't delete any fields as this may
- render your application or BUILDER inoperative.
-
- HELP.DBF/.DBT - Help file, created for *all* BUILDER
- applications, even if a Help System is NOT to be incorpo
- rated. See the section on the Help System for more detailed
- information.
-
- FILES.BLD - contains the list of databases and indexes your
- application will use.
-
- WINDOWS.BLD - each record defines by boundaries of a
- window and where in the application the window belongs.
-
- ELEMENTS.BLD - each record contains a display/GET element
- used in a window.
-
- Page: 111
-
- PICKLIST.BLD - each record contains the detail needed to
- create a picklist.
-
- VALIDS.BLD - each record in this file contains the data
- needed to create a VALID clause specified for a GET.
-
- HANDCODE.BLD - each record contains one hand code
- function's source statements.
-
- BDCTFIL.BLD - each record contains a database definition
- that is used in the BUILDER data dictionary.
-
- BDCTFLD.BLD - each record contains a database field
- definition that is used in the BUILDER data dictionary.
-
- BDCTVLD.BLD - each record contains a valid definition
- that is used in the BUILDER data dictionary.
-
- The reason .BLD, .BLT, and .BLX are used for the BUILDER
- files is to make it easier to copy the generated application
- when it is finished. You need only copy the .DBFs and the
- .EXE(s) to give the application to your user.
-
-